

GAのレポーティングAPIから数値を取得し、それをCSVで出力したいと考え、  
下記のような関数をPythonで書きました。

[code]

    """GAから集計するための関数"""
    def get_results(service, profile_id):
      # Use the Analytics Service Object to query the Core Reporting API
      # for the number of sessions within the past seven days.
      return service.data().ga().get(
          ids='ga:' + profile_id,
          start_date='7daysAgo',
          end_date='today',
          dimensions='ga:date',
          metrics='ga:sessions').execute()
    
    """集計した結果を表示する関数"""
    def print_data_table(results):
      output = []
      for header in results.get('columnHeaders'):
        output.append('%s' % header.get('name'))
    
      if results.get('rows',[]):
        for row in results.get('rows'):
            output.append('%s' % row)
    
      print(output)
    
      f = open('output.csv','wt')
      Writer = csv.writer(f,lineterminator='\n')
      Writer.writerows(output)
    
      f.close()
    
[/code]

上記の関数で数値を取得すると、

[code]

    g,a,:,d,a,t,e
    g,a,:,s,e,s,s,i,o,n,s
    [,',2,0,1,5,0,6,0,5,',",", ,',1,',]
    [,',2,0,1,5,0,6,0,6,',",", ,',2,',]
    [,',2,0,1,5,0,6,0,7,',",", ,',3,',]
    [,',2,0,1,5,0,6,0,8,',",", ,',4,',]
    [,',2,0,1,5,0,6,0,9,',",", ,',5,',]
    [,',2,0,1,5,0,6,1,0,',",", ,',6,',]
    [,',2,0,1,5,0,6,1,1,',",", ,',7,',]
    [,',2,0,1,5,0,6,1,2,',",", ,',8,',]
    
[/code]

というように出力され、不要なカンマが入ってしまいます。  
Pythonのcsvモジュールの仕様書を見てみたのですが、  
どのように記述すれば、カンマが取れるのかわかりません。

解決策をご教示いただけませんでしょうか？  
よろしくお願いいたします！


CC BY-SA 3.0
2015-06-12T08:34:12.937
11286
2015-06-12T16:12:55.400
2015-06-12T08:38:08.273
7214
10116
question
python csv google-analytics-api
pythonでリストをCSV出力する際に、不要なカンマが入ってしまうのを入らないようにしたいです。


結果から逆にたどると`get_results`の値は次の通りだったはず。

[code]

    {
      "columnHeaders": [
        {"name": "ga:date"},
        {"name": "ga:sessions"}
      ],
      "rows": [
        ["20150605", "1"],
        ["20150606", "2"],
        ["20150607", "3"],
        ["20150608", "4"],
        ["20150609", "5"],
        ["20150610", "6"],
        ["20150611", "7"],
        ["20150612", "8"]
      ]
    }
    
[/code]

であれば次のように書けば動きます

[code]

    def print_data_table(results):
    
      header = [h.get('name') for h in results.get('columnHeaders')]
      output = [header] + results.get('rows',[])
    
      print(output)
    
      with open('output.csv','wt') as f:
        writer = csv.writer(f,lineterminator='\n')
        writer.writerows(output)
    
[/code]

CSVの内容

[code]

    ga:date,ga:sessions
    20150605,1
    20150606,2
    20150607,3
    20150608,4
    20150609,5
    20150610,6
    20150611,7
    20150612,8
    
[/code]


CC BY-SA 3.0
2015-06-12T16:00:52.943
11298
2015-06-12T16:12:55.400
2015-06-12T16:12:55.400
7837
7837
11286
answer