Я хочу прочитать несколько объектов 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)
Мой вопрос похож на Загрузка и анализ файла JSON с несколькими объектами JSON, и я пробовал, но возникает та же проблема. Что мне делать, чтобы решить эту проблему?
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]
.