清理JSON并导出到JSONL面临的挑战

时间:2020-11-04 14:54:55

标签: python json

在接下来的挑战中,我的大脑崩溃了。

尝试清理JSON示例数据并将其导出到JSONL文件。 组织JSON文件:

{"data": {"allSites": {"activeSys": 123, "totalSys": 24718}},
 "sites": [{"accountId": "12345", "accountName": "system_a"},
           {"accountId": "67890","accountName": "system_b"}]}

所需的JSONL数据格式:

{"accountId": "12345", "accounName": "system_a"}
{"accountId": "67890", "accounName": "system_b"}

1 个答案:

答案 0 :(得分:0)

您可以将ast.literal_eval转换用作 中间步骤以提取所需的部分,然后使用json.dumps转换为新创建的json对象(例如

)的漂亮格式
import json
import ast

Js= """{"data": {"allSites": {"activeSys": 123, "totalSys": 24718}},
        "sites": [{"accountId": "12345", "accountName": "system_a"},
                  {"accountId": "67890","accountName": "system_b"}]}"""

data = ast.literal_eval(Js)
newJs = data["sites"]

updatedJs = json.dumps(newJs, indent=4)
print(updatedJs)

如果要读取文件(json.file)并写入另一个文件(data_new.json),请使用

import json
import ast

with open('data.json') as f, open('data_new.json', 'w') as f_out:
    data = ast.literal_eval(f.read())    
    newJs = data["sites"]    
    f_out.write(format(newJs))