我在这里做的是从ReportRequest对象(“响应”)中获取包含Google Analytics数据的数据。我打算将这个数据放在这个对象中,并将其粘贴到一个字典中,其中每个键都是一个值列表:
for report in response.get('reports', []):
columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader',
{}).get('metricHeaderEntries', [])
rows = report.get('data', {}).get('rows', [])
metrics_ls = [str(metricHeaders[x]['name'][3:]) for x,y in enumerate(metricHeaders)]
DataDict = dict.fromkeys(metrics_ls, [])
# stick each piece of data in appropriate place of DataDict
for cur_row in rows:
cur_vals = cur_row.get('metrics', [])[0]
for i, cur_metric in enumerate(metrics_ls):
DataDict[cur_metric].append( float(cur_vals['values'][i]) )
在上面,我用一组包含空列表的键[]来初始化DataDict。然后,我将值附加到for循环中列表的相应键。但是,最后,我的所有键都包含相同的列表,这只是所有值的巨大列表。换句话说,DataDict的每个键包含相同的数字集,但是我想要的是,如果所有这些数字的子集都进入我的dict的相应键,那么dict包含几个键,每个键都有不同的列表数字。