JSON выдает ошибку «Незавершенная строка, начинающаяся с: строка 1, столбец 1 (символ 0)» Python

Вот мой JSON:

"{\"question\": \"What artist released the hit song 'Hello' in 2015?\", \"answers\": [\"Taylor Swift\", \"Katy Perry\", \"$Adele\", \"Lady Gaga\"], \"topic\": \"Music in the 2010's\"}, {\"question\": \"Who is the featured artist on the song 'Despacito' by Luis Fonsi?\", \"answers\": [\"Enrique Iglesias\", \"Maluma\", \"$Justin Bieber\", \"Pitbull\"], \"topic\": \"Music in the 2010's\"}"

Затем я получаю ошибку Json: Незавершенная строка, начинающаяся с: строка 1, столбец 1 (символ 0)

Я просто выполняю json.loads() для этого json.

Я попытался удалить конечные запятые и убедиться, что использую двойные кавычки в именах свойств, как предложено здесь: https://www.geeksforgeeks.org/jsondecodeerror-expecting-property-name-enclosed-in-double-quotes-line- 1-столбец-2-символ-1/. Тогда я не смог пройти эту ошибку.

Я также попробовал передать строку https://jsonchecker.com/, и там написано, что это действительный json. Почему json.loads() не работает?

При отсутствии информации о том, что вы сделали, чтобы получить текст, который вы показываете в этом первом блоке: это не JSON.

Mike 'Pomax' Kamermans 09.07.2024 22:27

Пожалуйста, дайте нам минимальный пример кода. Мы не знаем, есть ли у вас именно эта строка или это строковый литерал для Python.

Matthias 09.07.2024 22:27

Являются ли символы в вашем сообщении (кавычка, фигурная скобка, обратная косая черта,...) фактическими символами строки (т. е. фактической переменной, если она напечатана), содержащей ваш JSON, или буквальными символами в исходном файле Python, которые образуют строку буквально?

nanofarad 09.07.2024 22:28

Я получаю другую ошибку: Дополнительные данные: строка 1, столбец 165 (символ 164). Проблема во всем, что после \"Music in the 2010's\"}. Я думаю, что это должен быть массив объектов, но в нем отсутствует окружение [].

Barmar 09.07.2024 22:29
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Данные json представляют собой список из двух объектов json, каждый из которых содержит 3 ключа «тема», «вопрос», «ответы».

Объекты должны быть заключены в квадратные скобки, чтобы модуль Python json мог идентифицировать два объекта:

s = "[{\"question\": \"What artist released the hit song 'Hello' in 2015?\", \"answers\": [\"Taylor Swift\", \"Katy Perry\", \"$Adele\", \"Lady Gaga\"], \"topic\": \"Music in the 2010's\"}, {\"question\": \"Who is the featured artist on the song 'Despacito' by Luis Fonsi?\", \"answers\": [\"Enrique Iglesias\", \"Maluma\", \"$Justin Bieber\", \"Pitbull\"], \"topic\": \"Music in the 2010's\"}]"

симпатичная печать может помочь немного лучше заметить два объекта:

import json
from pprint import pprint

j = json.loads(s)
pprint(j)

[{'answers': ['Taylor Swift', 'Katy Perry', '$Adele', 'Lady Gaga'],
  'question': "What artist released the hit song 'Hello' in 2015?",
  'topic': "Music in the 2010's"},
 {'answers': ['Enrique Iglesias', 'Maluma', '$Justin Bieber', 'Pitbull'],
  'question': "Who is the featured artist on the song 'Despacito' by Luis "
              'Fonsi?',
  'topic': "Music in the 2010's"}]

Другие вопросы по теме