我有一个包含一些数据的列表,这些数据已经在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)
答案 0 :(得分:0)
要将json字符串列表转换为json对象列表,您可以使用一些选项将json.loads
应用于数组中的每个元素。图表A,列表理解:
parsed_data = [json.loads(s) for s in a]
附件B,map
:
parsed_data = map(json.loads, a)
或者,使用list
创建map
:
parsed_data = list(map(json.loads, a))
编辑:要将这种新的数据结构输出为所需的格式,您可以执行以下操作:
with open('output.json', 'w') as fs:
json.dump(parsed_data, fs, indent=4)