Имя свойства Python/Json:Expecting включается в двойные кавычки

Я пытался выяснить хороший способ загрузить объекты JSON в Python. Я отправляю эти json данные:

{'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}

к бэкенду, где это будет получено как строка затем, я использовал json.loads(data) проанализировать его.

Но каждый раз я получил то же исключение:

ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Я погуглил его, но ничто, кажется, не работает помимо этого решения json.loads(json.dumps(data)) который лично кажется для меня не настолько эффективным начиная с него, принимают любой вид данных даже те, которые не находятся в json формате.

Любые предложения будут очень цениться.

59
задан 14 September 2016 в 16:17

2 ответа

В моем случае, двойные кавычки не была проблема.

Последняя запятая дала мне то же сообщение об ошибке.

{'a':{'b':c,}}
           ^

Для удаления этой запятой я написал некоторый простой код.

import json

with open('a.json','r') as f:
    s = f.read()
    s = s.replace('\t','')
    s = s.replace('\n','')
    s = s.replace(',}','}')
    s = s.replace(',]',']')
    data = json.loads(s)

И это работало на меня.

4
ответ дан 1 November 2019 в 11:32

Я использовал этот метод и сумел получить желаемый вывод. мой сценарий

x = "{'inner-temperature': 31.73, 'outer-temperature': 28.38, 'keys-value': 0}"

x = x.replace("'", '"')
j = json.loads(x)
print(j['keys-value'])

произвел

>>> 0
4
ответ дан 1 November 2019 в 11:32

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

Похожие вопросы: