0

我想从本地目录导入的单个文件中读取多个 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,我已经尝试过了,但是出现了同样的问题。我应该怎么做才能解决这个问题?

4

1 回答 1

1
for line in f:
    data = json.load(f)

这是没有意义的。您试图一遍又一遍地解析文件,次数与文件中的行数一样多。这比听起来更成问题,因为f在第一次调用json.load(f).

您不需要循环,只需传递fjson.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].

于 2020-12-09T19:13:06.563 回答