При подготовке запросов вставки для таблицы PostgreSQL Postgres не принимает двойные кавычки для значений объемного звучания. Например, burja duba''i
должен быть burja duba''i
(записан в файл) как " burja duba''i
", однако, поскольку в пределах burja duba''i
есть одинарные кавычки, выходы Python 3 "burja duba''i"
. Как получить желаемый формат: 'burja duba''i'
?
PS Я предпочел бы подготовить инструкцию отдельно, а затем запустить их, чем использовать psycopg2.
Попытки решить эту проблему:
>>> a = "burja duba''i"
>>> b = a.split("''")
>>> b[0] + "''" + b[1]
"burja duba''i"
# still same as a
Stoopid Я знаю, но я застрял
Вы должны использовать экранированные символы -
a = "burja duba''i"
b = a.split("''")
print('\'' + b[0] + '\'\'' + b[1] + '\'')
ВЫХОД
'burja duba''i'
если вы хотите связать свою строку в одинарных кавычках, вы можете использовать этот код.
a = 'burja duba \'\'i
Я считаю, что вы хотите окружить строку одиночными кавычками, попробуйте использовать следующее:
>>> a = "burja duba''i"
>>> b = a.split("''")
>>> "'%s ''%s'" % (b[0], b[1])
'burja duba''i'
Я предпочитаю использовать %
потому что это быстрее, чем альтернативный .format
.
Другие альтернативы - избежать символа и т.д. - Хотя я бы не пошел по этому маршруту, держите его в чистоте.
"'burja duba ''i'"
a = "'burja duba''i'"
?