@fopp1ss

Почему при чтении JSON выдаёт ошибку?

with open(f'example.json', mode='r', encoding='utf-8') as srcfl:
    data = json.load(srcfl)
    print(data)


При выполнении кода ошибка:
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Сам JSON:
{'autoData': {'carplate': 'b584bk82',
'city_sale': 'Автомобиль был продан в городе: Yevpatoriya',
'color': 'ЧЕРНЫЙ',
'drom.ru': 'https://yevpatoriya.drom.ru/audi/q5/27413672.html',
'frame': None,
'frame_id': 2955504,
'image': 'https://s.auto.drom.ru/photo/IeOxpiBFzKg-Ds87cwbsi...',
'info': 'Продажа Audi Q5, 2008 год в Евпатор',
'model': 'АУДИ Q5 ',
'power': 211,
'price': '899\xa0000\xa0₽',
'status': 'Продавался на Drom.ru, объявление 27413672 от '
'25.11.2017, посмотрели 427',
'type': 'Легковые автомобили универсал',
'vin': 'WAUZZZ8RX9A004985',
'volume': 1984,
'year': 2008},
'autoDescription': ['Машина самой полной комплектации, есть всё (двойная '
'панорама, электробагажник, камера слепых зон и тд) !!! '
'+Комплект зимней резины шиповки на оригинальных дисках!'],
'autoOsago': {'data': None,
'parse': {'body': 'WAUZZZ8RX9A004985',
'cacheTime': '1645991970',
'goingToStation': 'Нет',
'hp': '211.00',
'id': '12884586',
'insuranceCompany': 'АО "СК ГАЙДЕ"',
'insured': 'Ц***** Александр Валериевич 27.12.1978',
'kbm': '0.90',
'licensePlate': 'В584ВК82',
'markModel': 'Audi Q5 (категория «B»)',
'owner': 'Ц***** Александр Валериевич 27.12.1978',
'periodicUse': 'Период использования ТС не активен на '
'запрашиваемую дату',
'policyCost': '7860.76 руб.',
'policyIsRestrict': 'Ограничен список лиц, допущенных '
'к управлению (допущено: 2 чел.)',
'policyNumber': '0104094940',
'policySeries': 'ХХХ',
'policyState': 'Прекратил действие',
'regionOfUse': 'Крым Респ',
'targetUse': 'Личная',
'useWithTrailer': 'Нет',
'vin': 'WAUZZZ8RX9A004985'},
'statusCode': 200},
'autoPhoto': ['https://s.nomerogram.ru/photo/s3OiCb2pCkj5oafX2x-e...',
'https://s.nomerogram.ru/photo/Px8baPZOwS2XYDz2czUG...',
'https://s.nomerogram.ru/photo/irK-SJy6LdqfRqf0CJen...',
'https://s.nomerogram.ru/photo/PZCxW5m9x8_FJFxpkLo2...',
'https://s.nomerogram.ru/photo/ZdD19ExMpo2NfW57_GvM...',
'https://s.nomerogram.ru/photo/FmYAicSzuHlubmpFUR1Z...',
'https://s.nomerogram.ru/photo/zM7SPgF9q29rIwsEwkWO...',
'https://s.nomerogram.ru/photo/yWSoNVt6nSeDZehsTn5f...',
'https://s.nomerogram.ru/photo/Eo16gsbDNLL8o7nP_qny...',
'https://s.nomerogram.ru/photo/kacv9wn9Wvdqe6ffB_US...',
'https://s.nomerogram.ru/photo/WChojK4pgnHu7AsSIahT...',
'https://s.nomerogram.ru/photo/1k0xa6AZnUCAZOckgv98...',
'https://s.nomerogram.ru/photo/djPYbZauuirt5C2U9qsI...',
'https://s.nomerogram.ru/photo/f0ERaoU1fXxmtFEfJfRg...'],
'autoRegistration': ['Периоды регистрации на 21.01.2022',
'13.09.2017-н.в., физ.лицо',
'06.05.2017-13.09.2017, физ.лицо',
'28.01.2015-06.05.2017, физ.лицо',
'23.10.2013-28.01.2015, физ.лицо',
'14.10.2010-23.10.2013, физ.лицо',
'29.11.2008-30.09.2010, физ.лицо'],
'autoSTS': 'Данные о свидетельстве транспортного средства (СТС) не найдены',
'police': {'aiusdtp': 'На серверах ГИБДД проводятся тех. работы или сервер '
'временно не доступен',
'diagnostic': 'Данные тех. осмотра в базе ГИБДД отсуствуют',
'history': {'RequestResult': {'ownershipPeriods': {'ownershipPeriod': [{'from': '2008-11-29',
'lastOperation': '62',
'simplePersonType': 'Natural',
'to': '2010-09-30'},
{'from': '2010-10-14',
'lastOperation': '12',
'simplePersonType': 'Natural',
'to': '2013-10-23'},
{'from': '2013-10-23',
'lastOperation': '03',
'simplePersonType': 'Natural',
'to': '2015-01-28'},
{'from': '2015-01-28',
'lastOperation': '03',
'simplePersonType': 'Natural',
'to': '2017-05-06'},
{'from': '2017-05-06',
'lastOperation': '03',
'simplePersonType': 'Natural',
'to': '2017-09-13'},
{'from': '2017-09-13',
'lastOperation': '03',
'simplePersonType': 'Natural'}]},
'vehicle': {'bodyNumber': 'WAUZZZ8RX9A004985',
'category': 'В',
'color': 'ЧЕРНЫЙ',
'engineNumber': 'CDN009783',
'engineVolume': '1984.0',
'model': 'АУДИ Q5 ',
'powerHp': '211.0',
'powerKwt': '155.000',
'type': '21',
'vin': 'WAUZZZ8RX9A004985',
'year': '2008'},
'vehiclePassport': {}},
'hostname': 'h6-check0-dc',
'message': 'ver.3.3',
'registerToken': '18a1ef1bc1781cb15c17d1131d410117c16e16d11911a118',
'regnum': '',
'requestTime': '01.03.2022 23:01',
'status': 200,
'vin': 'WAUZZZ8RX9A004985'},
'restricted': 'Данные о наличии ограничений в базе ГИБДД '
'отсуствуют',
'wanted': 'Данные нахождении в розыске в базе ГИБДД отсуствуют'},
'policeCarLocation': 'Крым, Авто. проехал на Желтом свете. Штраф за нарушение '
'КоАП РФ отсутствует',
'url': ['drom.ru: https://yevpatoriya.drom.ru/audi/q5/27413672.html']}
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
nochkin
@nochkin
Как написали уже выше, лучше исправить источник.
Но если нет такой возможности, то альтернативно можно использовать ast.literal_eval:
import ast

with open(f'example.json', mode='r', encoding='utf-8') as srcfl:
    data_s = srcfl.read()

data = ast.literal_eval(data_s)
print(data)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Ну, собственно, в ошибке и написано, ожидается имя объекта в двойных кавычках. У вас одинарные. Одинарные кавычки не являются валидными
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы