首页 > 解决方案 > 将 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)

标签: pythonjson

解决方案


要将 json 字符串列表转换为 json 对象列表,您有几个选项可应用于json.loads数组中的每个元素。图表 A,列表理解:

parsed_data = [json.loads(s) for s in a]

图表 B map

parsed_data = map(json.loads, a)

或者,创建一个listusing map

parsed_data = list(map(json.loads, a))

编辑:要将此新数据结构输出为所需格式,您可以执行以下操作:

with open('output.json', 'w') as fs:
    json.dump(parsed_data, fs, indent=4)

推荐阅读