обратный слэш

разбирался сегодня с такой проблемой: скрипт на python-е, в нем строка вида ‘/_\_’ (входные данные вот такие, юзвери прикалываются :) ) и надо ее передать дальше в базу данных на PostgreSQL конструкцией вида, например,
UPDATE XXX SET xID = '/_\_' ...
Чтение документации показало, то БД хочет данные в виде ‘\’ → ‘\\’, то есть обратный слэш надо заэкранировать + указать на это явным образом используя префикс E, т.е. получаем sql-команду вида
UPDATE XXX SET xID = E'/_\\_' ...
теперь переходим к python-у — заэкранировать слеши в строке можно так
x = '/_\_'
y = x.encode('string_escape')
получим требуемый результат
y = '/_\\_'

Оставить комментарий