@igreklpofrss

Как в результате регулярного выражения сохранить обратный слэш(\)?

Делаю запрос к серверу - получаю html. В html есть json словарь. С помощью регулярки '{.+}' ищу словарь. Нахожу. Закидываю в json.loads чтобы из строки получить словарь. НО json выдает ошибку json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 82 (char 81).
Изучив вопрос, увидел разницу между одним ключом.
В html это: "item({\"input\":{\"id\":\"33452\"}})"
После регулярки: "item({"input":{"id":"33452"}})"
Собственно вопрос как сохранить этот слэш? Указывал в строке символ r перед искомой строкой - не помогло. Я понимаю, если в регулярке обратный слэш создает проблему, но в строке.. в таком случае надо во всех гайдах на питон писать, что ". - ищет любой символ, но не любой"
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Регулярка и правда ничего не съела. Лучше привести полную страницу откуда вы берете данные. Как раз наоборот, то, что вы приводите как поломанный json: item({"input":{"id":"33452"}}) является вполне себе валидным JSON объектом (всё, что внутри item конечно же). А если хотите распарсить строку с бэкслэшем, то получите ошибку: json.loads({\\"input\\":{\\"id\":\\"33452\\"})

Так что в бэкслэшах, по крайней мере в том виде, в котором привели вы, проблем нет
Ответ написан
Ваш ответ на вопрос

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

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