我有一个巨大的文件(大小为GB)。它具有一个串联的json,即背对背的几个JSON,没有定界符(甚至没有逗号或换行符)。
有人知道我可以以某种方式解析此方法吗?当串联中的第二个json到达时,json.load(fileobj)和json.loads(line)都失败,并显示“额外数据”错误。
如果该解决方案由于尺寸巨大而允许字符流传输,则更好,但这不是必需的。
编辑:串联的json是https://en.wikipedia.org/wiki/JSON_streaming#Concatenated_JSON_2
逐字符读取文件,然后将结果写入文件。还要跟踪括号缩进级别。
每当您读取}
使缩进级别为零的字符时,您就已经读取了整个json对象。关闭文件,使用加载它json.load()
,然后开始一个新文件。
但是,如果文件包含带引号或转义}
字符,则此解决方案太幼稚,将无法工作;您将需要一个“真实的”解析器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句