Ошибка JSON JSONDecodeError: дополнительные данные Python

#python #json

#питон #json

Вопрос:

Я пытаюсь напечатать каждое значение Json с помощью Python. Есть 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?
 

Ответ №1:

Верхний уровень строки 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}]'
 

Когда вы загрузите это, вы получите список словарей.