python - 将 JSON 数据列表输出到 JSON 数组并将它们写入文件
问题描述
我有一个包含一些数据的列表,这些数据已经用 JSON 序列化:
>>> import json
>>> a = []
>>> a.append(json.dumps({"key1":"value1"}))
>>> a.append(json.dumps({"key2":"value2"}))
>>> a
['{"key1": "value1"}', '{"key2": "value2"}']
如何将此列表转换为 JSON 数组并将它们以以下格式输出到文件中:
[
{
"key1": "value1"
},
{
"key2": "value2"
}
]
以下内容将不起作用,因为每个列表元素都已在 JSON 中序列化。
with open('test_output.json', 'w') as outfile:
json.dumps(a, outfile)
解决方案
要将 json 字符串列表转换为 json 对象列表,您有几个选项可应用于json.loads
数组中的每个元素。图表 A,列表理解:
parsed_data = [json.loads(s) for s in a]
图表 B map
:
parsed_data = map(json.loads, a)
或者,创建一个list
using map
:
parsed_data = list(map(json.loads, a))
编辑:要将此新数据结构输出为所需格式,您可以执行以下操作:
with open('output.json', 'w') as fs:
json.dump(parsed_data, fs, indent=4)