当前位置: 首页 > 面试题库 >

无法解析json文件:json.decoder.JSONDecodeError:额外数据。

严天逸
2023-03-14
问题内容

我有一个json档案。它的简化版本如下所示:

{
  "host": "a.com",
  "ip": "1.2.2.3",
  "port": 8
}
{
  "host": "b.com",
  "ip": "2.5.0.4",
  "port": 3

}
{
  "host": "c.com",
  "ip": "9.17.6.7",
  "port": 4
}

我运行此脚本parser.py来解析它:

import json
from pprint import pprint

with open('myfile.json') as f:
    data = json.load(f)
pprint(data)

但我收到此错误:

Traceback (most recent call last):
  File "parser.py", line 5, in <module>
    data = json.load(f)
  File "/usr/lib/python3.6/json/__init__.py", line 299, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 342, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 6 column 1 (char 54)

您能指出我所缺少的吗?


问题答案:

您的JSON数据集无效,您可以将它们合并为一个对象数组。例如 :

[
    {
        "host": "a.com",
        "ip": "1.2.2.3",
        "port": 8
    }, {
        "host": "b.com",
        "ip": "2.5.0.4",
        "port": 3

    }, {
        "host": "c.com",
        "ip": "9.17.6.7",
        "port": 4
    }
]

在JSON中,您不能有多个顶级对象,但可以有对象数组,并且它是有效的

如果需要,可以在此链接中看到更多的JSON数据集示例。

  • 如果您想了解有关JSON数组的更多信息,请阅读w3schools JSON教程


 类似资料:
  • 我正在尝试使用JSON加载一些JSON数据。load(),但我一直收到一条错误消息,我不知道如何修复它。 这是json文件的一部分示例,有已删除的推文(以{"delete":{开头)和已创建的推文(以{"created_at":开头): 我的最终目标是从该文件中提取推文的文本,但为此,我需要将其作为json文件加载到python上,所以这就是我迄今为止所尝试的: 这是我收到的错误消息: 似乎有额外

  • 问题内容: 加载似乎包含 TAB 字符的JSON文件时,我遇到了解析问题。 当我转到http://jsonlint.com/时,我输入了带有TAB字符的部分: 验证者抱怨: 这实际上是有问题的JSON文本的复制/粘贴。 我曾尝试加载该文件,并没有成功。如何正确加载?我应该只预处理文件并用空格替换TAB 吗?还是我在这里想念的东西? 更新: 这也是一个有问题的示例: 问题答案: 从JSON标准: 在

  • 我有一个json转储为 我编写了一个小代码来从json获取一些详细信息 这给我造成了错误: 回溯(最近一次调用):文件“python_opennms.py”,第24行,in x=get_nodes_opennms()文件“python_opennms.py”,第15行,in get_nodes_opennms for i in JSON.load(open('out.txt'))[“alarm”]

  • 我试图将一个JSON发送给一个REST控制器,它是用Spring编写的,不管我做了什么尝试,Jackson抛出了一个异常: 这是JSON: 有什么建议吗?

  • 无法解析JSON文档:为什么我会得到这个错误。我正在尝试将参数传递给ajson主体以执行删除操作。数据使用TestNg表示法存储在一个数组中。当我运行测试时,它失败了,并显示消息“无法解析Json文档”

  • 问题内容: 当我在Kibana中看到结果时,我发现JSON中没有字段,而且,该字段仅包含。 是否可以解析json中的字段并将其显示在Kibana中?我有以下配置: 以及以下JSON文件: 问题答案: 是。您需要在配置中添加一个过滤器,如下所示。 在这里的文档中对此进行了很好的描述 编辑 json编解码器似乎不喜欢传入数组。单个元素与此配置一起工作: 输入: Logstash结果: } 现在有了一个