如何从python字典列表创建换行符分隔的json-lines文件

Tre*_*ury 4 python json python-3.x

我正在尝试创建一个 JSON 行的数据文件,以便与 google cloud AI 平台对在线预测要求兼容。

现在我有每个数据点的字典列表。它看起来像这样:

data = [{'values': [0,1,0], 'key': 0}, {'values': [1,1,0], 'key': 1}]
Run Code Online (Sandbox Code Playgroud)

我使用以下代码将此数据导出到data.json

import json
json_filepath = "data.json"
with open(json_filepath, 'w') as f:
    json.dump(data, f)
Run Code Online (Sandbox Code Playgroud)

问题是,这个data.json文件看起来和我的数据完全一样(即字典列表)。如何使这个data.json文件成为列表中每个字典的换行分隔集合?换句话说,我怎样才能让它看起来像这样:

{'values': [0,1,0], 'key': 0}
{'values': [1,1,0], 'key': 1}
Run Code Online (Sandbox Code Playgroud)

MrG*_*eek 12

您可以遍历数组并转储每个对象,后跟一个新行'\n'

with open(json_filepath, 'w') as f:
    for d in data:
        json.dump(d, f)
        f.write('\n')
Run Code Online (Sandbox Code Playgroud)

或者,你可以用用一行代码json.dumpsstr.join以及map

with open(json_filepath, 'w') as f:
    f.write('\n'.join(map(json.dumps, data)))
Run Code Online (Sandbox Code Playgroud)