【发布时间】:2021-11-21 20:35:34
【问题描述】:
我有一个简单的代码,可以在 python 中读取我的 json 数据并转换为字典,这样我就可以将它用于 sqlite。但是,我一直遇到这个错误。
我运行的代码:
import json
with open("users.json", "r") as f:
json_str = f.read()
json_value = json.loads(json_str)
print(type(json_value))
我有一组这样的数据:
{"_id":{"$od":"5f12"},"ready":true,"createdon":{"$date":1609687444800},"lastLogin":{"$date":1858},"position":"consumer","signUp":"Email","state":"WI"}
{"_id":{"$od":"5f12"},"ready":true,"createdon":{"$date":1609687444800},"lastLogin":{"$date":1858},"position":"consumer","signUp":"Email","state":"WI"}
我得到的错误:
Traceback (most recent call last):
File "json_to_sqlite.py", line 5, in <module>
json_value = json.loads(json_str)
File "/Users/malaba/opt/anaconda3/lib/python3.8/json/__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "/Users/malaba/opt/anaconda3/lib/python3.8/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 186)
【问题讨论】:
-
字典之间需要一个逗号,然后你需要一个根元素,它可以是一个列表。所以我会用 [] 包装最终结果
-
您不能将多个 JSON 字符串放入一个文件。如果要在 JSON 文件中放入多个对象,则应将它们写为数组。
-
@rv.kvetch 我不太明白你的意思。我知道我应该,但我刚开始,还在想办法。如果您能详细说明上面的评论,我将不胜感激。谢谢!
-
嗯,我在手机上打字,所以有点难,但正如@barmer 上面所说,你需要一个数组作为根元素,例如 [{…}, {…}] - 注意这里每个元素都是一个字典。我想你明白我的意思。