【问题标题】:Pandas read Json - Trailing Data熊猫读取 Json - 尾随数据
【发布时间】:2020-08-26 05:31:49
【问题描述】:

我正在尝试通过 Pandas pd.read_json 读取一个大型 Json 文件,但显示错误: ValueError:尾随数据

根据我在这里的研究,我没有成功,所以我想寻求您的帮助。 尝试运行 Json 验证器,输出如下。

我该如何解决这个问题?谢谢

【问题讨论】:

  • 您的 JSON 中可能有一个错误的字符被错误地解析

标签: python json pandas parsing


【解决方案1】:

您提供的错误消息包含准确的位置 问题的根源是:

(At line #191), (At position #1)

查看 JSON 文件中指定的位置。

编辑

你的文件中有一个奇怪的细节是逗号应该在 after "}" in 第 190 行,不是下一行的开头,但我不确定是否 这实际上是任何问题。

尝试“部分读取”,没有从第 191 行开始的对象。

要检查的更多细节:如果第 190 行中的“}”终止了上面的 整个 内容,然后:

  • 您的输入文件在主级别包含 多个 JSON 对象,
  • 可能你应该用“[”和“]”将整个文件括起来,这样 整个文件将是一个对象列表。

编辑 2

我做了这样一个实验:

输入文件包含:

{
  "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 对象,所以在你的情况下它是相当没用的。

【讨论】:

  • 谢谢!我已经这样做了,但问题是我没有发现任何问题。添加了上图。有什么想法吗?
  • 尝试使用另一个 JSON 验证器。或者,如果您有足够的耐心,请删除文件的一部分,没有“有问题”的区域(将其保存在另一个文件中)并尝试读取它。
  • 非常感谢!您对“编辑 2”的建议奏效了!
猜你喜欢
  • 2021-11-11
  • 2018-07-14
  • 2018-03-04
  • 1970-01-01
  • 2019-03-31
  • 2017-03-28
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
相关资源
最近更新 更多