Разбор неверного JSON с Python - неверные экранирования, вызывающие ошибки - PullRequest
0 голосов
/ 23 октября 2019

Я анализирую 'JSON', что обычно правильно, но некоторые записи содержат шаблоны регулярных выражений, которые выдают ошибки во время json.load

Например

 "pattern" : [
                        {
                            "data" : ".*\x 39 44 2D 52 51 4D 54 2D 48 46 2D 41 52 4D 30 31 2E 70 64 66 78 \x.*"
                        }
                        ], 

Выдает ошибку:

~/anaconda3/lib/python3.7/json/decoder.py in raw_decode(self, s, idx)
351         """
352         try:
--> 353             obj, end = self.scan_once(s, idx)
354         except StopIteration as err:
355             raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Invalid \escape: line 18419 column 45 (char 595400)

Какой правильный способ справиться с этим?

В настоящее время я просто пытаюсь (хотя пробовал другие варианты 'unicode-escape'):

with open("json-file.json", "r") as original_file:
    file = json.load(original_file)

1 Ответ

0 голосов
/ 24 октября 2019

Ответ, включенный сюда, работает для файлов, которые нельзя изменить заранее (например, перед синтаксическим анализом):

Как читать из файла JSON без обратной косой черты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...