Мне дали некоторые данные, которые я должен проанализировать и преобразовать в Dict
.Я не контролирую, как генерируется ввод.
Пример ввода u'{u\'my_key\': u\'AB\\N\'}'
.Обратите внимание, что это должен представлять собой сериализованный словарь.
Не удается выполнить синтаксический анализ этой строки словаря, используя различные методы.Использование json.loads
не удается из-за неправильной структуры структуры из-за вложенной u
.Использование ast.literal_eval
завершается с ошибкой (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: malformed \N character escape
.
Мне нужно как-то санировать ввод, чтобы \N
не считался символом ascii
при разборе с ast
.Выполнение простого replace('\\', '\\\\')
кажется склонным к ошибкам и, вероятно, имеет множество крайних случаев.
В качестве альтернативы мне нужен способ удалить u
из вложенной строки, чтобы json.loads
работал.
Спасибо