如何读取单个文件中的多个 JSON 对象?
How to read multiple JSON objects in a single file?
我想从从本地目录导入的单个文件中读取多个 JSON 对象。到目前为止,这是我的简单工作:
数据:
[{
"uuid": "6f476e26",
"created": "2018-09-26T06:57:04.142232",
"creator": "admin"
}, {
"uuid": "11d1e78a",
"created": "2019-09-21T11:19:39.845876",
"creator": "admin"
}]
代码:
import json
with open('/home/data.json') as f:
for line in f:
data = json.load(f)
错误:
File "/usr/lib64/python3.8/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 8 (char 7)
我的问题与 Loading and parsing a JSON file with multiple JSON objects 类似,我已经尝试过了,但出现了同样的问题。我应该怎么做才能解决这个问题?
for line in f:
data = json.load(f)
这毫无意义。您正试图一遍又一遍地解析文件,次数与文件中的行数一样多。这比听起来更成问题,因为 f
在第一次调用 json.load(f)
.
后就用完了
您不需要循环,只需将 f
传递给 json.load
:
with open('/home/data.json') as f:
data = json.load(f)
print(data)
产出
[{'uuid': '6f476e26', 'created': '2018-09-26T06:57:04.142232', 'creator': 'admin'},
{'uuid': '11d1e78a', 'created': '2019-09-21T11:19:39.845876', 'creator': 'admin'}]
现在您可以遍历 data
或直接访问特定索引,即 data[0]
或 data[1]
。
我想从从本地目录导入的单个文件中读取多个 JSON 对象。到目前为止,这是我的简单工作:
数据:
[{
"uuid": "6f476e26",
"created": "2018-09-26T06:57:04.142232",
"creator": "admin"
}, {
"uuid": "11d1e78a",
"created": "2019-09-21T11:19:39.845876",
"creator": "admin"
}]
代码:
import json
with open('/home/data.json') as f:
for line in f:
data = json.load(f)
错误:
File "/usr/lib64/python3.8/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 8 (char 7)
我的问题与 Loading and parsing a JSON file with multiple JSON objects 类似,我已经尝试过了,但出现了同样的问题。我应该怎么做才能解决这个问题?
for line in f:
data = json.load(f)
这毫无意义。您正试图一遍又一遍地解析文件,次数与文件中的行数一样多。这比听起来更成问题,因为 f
在第一次调用 json.load(f)
.
您不需要循环,只需将 f
传递给 json.load
:
with open('/home/data.json') as f:
data = json.load(f)
print(data)
产出
[{'uuid': '6f476e26', 'created': '2018-09-26T06:57:04.142232', 'creator': 'admin'},
{'uuid': '11d1e78a', 'created': '2019-09-21T11:19:39.845876', 'creator': 'admin'}]
现在您可以遍历 data
或直接访问特定索引,即 data[0]
或 data[1]
。