首页 > 解决方案 > Python - json.loads 未连接的大字典文件

问题描述

我有一个大(50,000 多行)文件,它是来自另一个应用程序的 json 输出的集合,我想将其作为 json 读取并对其执行一些分析。问题是,虽然单个条目是有效的 json,但我无法以 json 格式读取整个文件,因为每个条目都没有连接。

片段:

{"action":"Iops","idg":"2214472975167211","idx":537994,"system":"Qos","utc":"2019-07-02T11:45:09.606765Z","ver":"1.1","xQosIops":{"ActualReadOps":{"avg":0,"ct":60,"max":0,"min":0,"std":0,"tmax":29880,"tmin":29880}}}
{"action":"Latency","idg":"2214472975167211","idx":537995,"system":"Qos","utc":"2019-07-02T11:45:09.606829Z","ver":"1.1","xQosLatency":{"AverageLocalWriteLatencyUS":{"avg":0,"ct":60,"max":0,"min":0,"std":0,"tmax":29880,"tmin":29880}}}

单独它们都是有效的,但我想要实现的是将所有这些动态连接到一个 json 对象中。需要注意的是,这些 json 响应可能跨越多行,所以我不能只逐行阅读。任何帮助,将不胜感激。

标签: pythonjsonparsing

解决方案


如果每一行都是有效的 JSON,您可以将其包装在一个单独读取它们的脚本中,并将它们附加到一个列表中。就像是:

import json

data = []

with open("fakejson.txt") as data_f:
    for line in data_f:
        data.append(json.loads(line)

推荐阅读