JSONDecode读取大型 JSON 文件时出错



我想读取我之前通过一些网络抓取创建的大型 JSON 文件。但是,当我尝试读取文件时,我收到以下错误消息:

JSONDecodeError: Expecting ',' delimiter: line 1364567 column 2 (char 1083603504)

但是,1364567是最后一行,它似乎是正确的。因此,我希望错误之前在文件中的其他地方,例如,某处有打开但未关闭的括号。您建议我如何跟踪问题并解决问题?我也可以提供该文件的链接,但它非常大(1.05 GB(。

我使用以下代码读取 json 文件

import json
with open("file.json") as f:
data = json.load(f)

谢谢!

编辑:问题已解决如下:JSON文件的末尾看起来正常,即带有字段和信息的附加行以及]的右括号。json.load抱怨缺少逗号,即没有认识到最后一个括号确实表明文件结束了。因此,文件中必须有[前面的左括号,这些括号没有闭合。幸运的是,这些是由于文件开头的抓取出现了一些问题,因此使用Sublime Text进行一些手动搜索使我只能删除那些左括号并毫无问题地阅读文件。无论如何,非常感谢您的建议,我相信下次遇到 JSON 问题时我会使用它们!

您可以使用任何强大的IDE,例如pycharm,Atom,sublime,它们都有用于json格式的插件

而且您始终可以使用在线工具验证 JSON,但处理起来会很麻烦

希望这些信息可能会有所帮助

您可以使用它在运行代码之前检查 json 格式。只是为了确定问题所在并修复它 https://jsonformatter.curiousconcept.com/

由于你想要最后一行,并且你正在使用Python,一个好的解决方案可能是实际读取最后一行并打印它们,看看问题在哪里。

为此,实际上您可以使用一个模块,file_read_backwards,它可以有效地做到这一点。

有关详细信息,请参阅此SO答案:https://stackoverflow.com/a/41418158/50003

最新更新