我对python不太了解,并找到了一个示例,该示例可以进行一些修改,以达到我的目的,当前试图从GET请求响应中解析一些数据,但我不断收到此错误:
"activity['parameters']['initValue']))
TypeError: list indices must be integers or slices, not strTypeError: list indices must be integers or slices, not str"
JSON响应看起来像这样:
{'kind': 'admin#reports#usageReports', 'etag': '"xxxxxxxxx/xxxxxxxxxxxx"', 'usageReports': [{'kind': 'admin#reports#usageReport', 'date': '2019-09-01', 'etag': '"xxxxxxxxx/xxxxxxxx"', 'entity': {'type': 'CUSTOMER', 'customerId': 'xxxxxxxx'}, 'parameters': [{'name': 'gmail:num_30day_active_users', 'intValue': '1234'}]}]}
Python代码:
result = service.customerUsageReports().get(date='2019-09-01', parameters='gmail:num_30day_active_users').execute()
results = result.get('usageReports', [])
if not results:
print('No data found.')
else:
print('Usage:')
for activity in results:
print(u'{0}: {1}'.format(activity['parameters'],
activity['parameters']['intValue']))
需要进行哪些更改才能使其正常工作?谢谢!
根据您提供的数据,parameters
中的值是字典列表
'parameters': [{'name': 'gmail:num_30day_active_users',
'intValue': '1234'}]}
所以您需要迭代列表中的所有项目
result = service.customerUsageReports().get(date='2019-09-01', parameters='gmail:num_30day_active_users').execute()
results = result.get('usageReports', [])
if not results:
print('No data found.')
else:
print('Usage:')
for activity in results:
for line in activity['parameters']:
print(u'{0}: {1}'.format(activity['parameters'],
line['initValue']))