#python_3x #json #экранирование
Не могу слеш отэкранировать при преобразовании в JSON. (Python 3.7, Linux) Сейчас '/' нужно '\/' Преобразую словарь в JSON d = json.dumps(dic) - слеши в путях к файлам "/" не экранируются пробую предварительно path = path_raw.replace('/', '\\/') на выхлопе экран из 4(!) обратных слешей \\\\/. Нашел интересный пакет ujson, у него есть опция отключения экранирования слеша, но и она не работает, перепробовал кучу комбинаций с разными кавычками и \r'\/' и '\\/' и '\\r\/'.
Ответы
Ответ 1
Попробуй вот так хаком json.dumps(your_dict).replace('/', r'\/') >>> escaped = json.dumps({"path": "/home/com/part/"}).replace('/', r'\/') >>> escaped '{"path": "\\/home\\/com\\/part\\/"}' >>> first_dict = json.loads(escaped) >>> first_dict {'path': '/home/com/part/'} Вот здесь описывается подобный случай.Ответ 2
Пришел вот к такому решению: dic = {'path': /path} listofdic.append(dic) dump_list = json.dumps(listofdic).replace('/', r'\/') str_to_write = str(dump_list) write_file(json_file, str_to_write) в файле после записи (показываю только проблемный кусок): "path": "\/complete\/search"
Комментариев нет:
Отправить комментарий