#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}]'
Когда вы загрузите это, вы получите список словарей.