【发布时间】:2020-08-26 05:31:49
【问题描述】:
我正在尝试通过 Pandas pd.read_json 读取一个大型 Json 文件,但显示错误: ValueError:尾随数据
根据我在这里的研究,我没有成功,所以我想寻求您的帮助。 尝试运行 Json 验证器,输出如下。
我该如何解决这个问题?谢谢
【问题讨论】:
-
您的 JSON 中可能有一个错误的字符被错误地解析
标签: python json pandas parsing
我正在尝试通过 Pandas pd.read_json 读取一个大型 Json 文件,但显示错误: ValueError:尾随数据
根据我在这里的研究,我没有成功,所以我想寻求您的帮助。 尝试运行 Json 验证器,输出如下。
我该如何解决这个问题?谢谢
【问题讨论】:
标签: python json pandas parsing
您提供的错误消息包含准确的位置 问题的根源是:
(At line #191), (At position #1)
查看 JSON 文件中指定的位置。
你的文件中有一个奇怪的细节是逗号应该在 after "}" in 第 190 行,不是下一行的开头,但我不确定是否 这实际上是任何问题。
尝试“部分读取”,没有从第 191 行开始的对象。
要检查的更多细节:如果第 190 行中的“}”终止了上面的 整个 内容,然后:
我做了这样一个实验:
输入文件包含:
{
"aa" : "aa1",
"bb" : "bb1"
},
{
"aa" : "aa2",
"bb" : "bb2"
}
(主要级别的 2 个 JSON 对象)。
然后pd.read_json('Input.json') 提出 ValueError: Trailing data。
但是当我将输入文件更改为:
[
{
"aa" : "aa1",
"bb" : "bb1"
},
{
"aa" : "aa2",
"bb" : "bb2"
}
]
(2 个 JSON 对象的 list),我得到了正确的结果:
aa bb
0 aa1 bb1
1 aa2 bb2
查看您的输入文件,也许在您的情况下,问题就像 我展示了。
又一个经验者
输入文件包含:
{ "aa" : "aa1", "bb" : "bb1" }
{ "aa" : "aa2", "bb" : "bb2" }
{ "aa" : "aa3", "bb" : "bb3" }
即单独的对象,没有包围“[”和“]” 或在每个对象后不加逗号。
您可以拨打pd.read_json('Input.json', lines=True)阅读。
但这里的限制是每行必须包含完整 JSON 对象,所以在你的情况下它是相当没用的。
【讨论】: