ошибки в json python
Добрый вечер
я парсю сотни json файлов, но много попадаются кривые json,
{"name":"Максимальная дальность","unit":cH,"value":"invalid_key"}
подскажите пожалуйста как добавить кавычки, что было так?
{"name":"Максимальная дальность","unit":"cH","value":"invalid_key"}
Ответы (2 шт):
Работаешь сначала как со строкой, т.е. парсишь на куски - от запятой до двоеточия.
Т.е. делишь файл на:
- от "{" до ":"
- от ":" до ","
- от "," до ":"
- от ":" до "}"
В каждом куске проверяешь на наличие кавычек. Есть есть одинарные кавычки - сразу замена на двойные. Если число кавычек не равно 2 - значит какая-то фигня - и вот тут нужно оценить куда добавить кавычку.
Напишешь такую функцию - и всё будет в порядке)
Здесь придется использовать регулярные выражения (не уверен) или писать свой парсер. Я написал парсер на основе коментария от @Kraftsov. Вот код (переменная js это ваш json):
out = [i.split(':') for i in js[1:-1].replace('"', '').split(',')]
EDIT: Нашел решение здесь. Регулярные выражения можно использовать таким видом:
json_str = re.sub(r':', r':"', json_str)
А json_str - это ваш json.