python - Python & Json:多行输入数据到 Json
问题描述
我的 python 代码有一个问题,需要创建多行 JSON 类型的数据。
def get_json_data(response):
x ={}
f ={}
for report in response.get('reports', []):
columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
for row in report.get('data', {}).get('rows', []):
dimensions = row.get('dimensions', [])
dateRangeValues = row.get('metrics', [])
for header, dimension in zip(dimensionHeaders, dimensions):
x[header.replace('la:','')] = dimension
for i, values in enumerate(dateRangeValues):
for metricHeader, value in zip(metricHeaders, values.get('values')):
x[metricHeader.get('name').replace('la:','')] = value
f['dashboard'] = x
print (json.dumps(f))
print (json.dumps(f))
目前,它正在显示这些数据
{
"dashboard":
{"bounces": "12", "userType": "Returning Visitor", "users": "3"}
}
但我想要的输出是显示这种数据
{
"dashboard":
{"bounces": "10", "userType": "New Visitor", "users": "15"},
{"bounces": "12", "userType": "Returning Visitor", "users": "3"}
}
解决方案
您的输出数据示例不是有效的 json,但这可以解决它:
def get_json_data(response):
x ={}
f ={'dashboad' : []}
...
f['dashboard'].append(x)
print (json.dumps(f))
print (json.dumps(f))
仪表板值应该是一个列表,以便您可以附加不同的x
结果
推荐阅读
- java - Selenium --> 如何从 li 类中选择按钮 [Java]
- swift - 使用 Alamofire 和 ObjectMapper 进行通用网络调用
- floating-point - 多个浮点数的锈蚀最大值?
- mysql - switch 语句中的奇怪结果
- typescript - Typescript 类属性初始化顺序
- search - 无法使用带有通配符的 solr 查询搜索电子邮件 ID 字段
- python-3.x - 如何使用 python 中的日志记录模块制作两个日志文件?
- xml - 无法使用 XSL 在 XML 中打印特殊(非英语)字符(拉丁语、德语等)
- firebase - 如何从 Firebase 存储控制台下载多个文件?
- php - 转置 mysql 表中的数据