Как распарсить json с символами переноса строки '\n' в python

import json


sn = '{"name": "string\nstring2"}'
json_tree = json.loads(sn)

Это синтетический пример описывающий проблему.

Выхватываю ошибку:

son.decoder.JSONDecodeError: Invalid control character at ...

Она связана с символом переноса строки.

Можно как-то не меняя данные парсить такой JSON?


Ответы (1 шт):

Автор решения: cauf

В документации вот что написано по этому поводу:

If strict is false (True is the default), then control characters will be allowed inside strings. Control characters in this context are those with character codes in the 0–31 range, including '\t' (tab), '\n', '\r' and '\0'.

Таким образом вам необходимо делать так:

import json


sn = '{"name": "string\nstring2"}'
json_tree = json.loads(sn, strict=False)
→ Ссылка