首页 > 解决方案 > JSON JSONDecodeError:额外数据 Python

问题描述

我正在尝试使用 Python 打印 Json 的每个值。有 3 个 Json 短语由“,”分隔,如果我尝试将所有短语加载到 json.loads 函数中,则会出现错误。

这是我正在尝试做的事情:

x = '{"level": 1, "body": "hey", "track": 199}, {"level": 2, "body": "good", "track": 199}, {"level": 3, "body": "nice", "track": 199}, {"level": 4, "body": "thin", "track": 199}'
y = json.loads(x)

和我得到的错误:

json.decoder.JSONDecodeError:额外数据:第 1 行第 55 列(字符 54)

我让它工作的唯一方法是获取该字符串中的每个 json 短语并在其上使用 json.loads() 函数。

所以

x = '{"level": 1, "body": "hey", "track": 199}'
y = json.loads(x) # this does work but how do I split the string to these phrases?

标签: pythonjson

解决方案


JSON 字符串的顶层必须只是一个数组或对象。如果你想拥有多个对象,它们必须在一个数组中。

x = '[{"level": 1, "body": "hey", "track": 199}, {"level": 2, "body": "good", "track": 199}, {"level": 3, "body": "nice", "track": 199}, {"level": 4, "body": "thin", "track": 199}]'

当你加载它时,你会得到一个字典列表。


推荐阅读