将JSON数据列表输出到JSON数组并将其写入文件

时间:2019-03-05 17:38:01

标签: python 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)

1 个答案:

答案 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)