В документации по синтаксису SQLite строковые литералы следует заключать в одинарные кавычки. Если вы хотите включить в строку одинарную кавычку, это делается путем ввода двух последовательных одинарных кавычек.
Таким образом, оператор SQL, который вы хотите выполнить, будет таким:
UPDATE tablename SET columnname = '''a''GG''g-CH2OHCH2CH2OH;v=0;''' WHERE columnname = '"a''GG''g-CH2OHCH2CH2OH;v=0;"'
Тогда у вас возникает вопрос, как построить эту строку в python. В python при заключении строкового литерала в одинарные кавычки нет необходимости экранировать двойные кавычки внутри этой строки, а также при заключении в двойные кавычки. О различных типах строковых литералов и о том, как работает экранирование в python, см. здесь.
Исходя из этого, это один из способов сделать это (при условии, что вы используете python 3.5 или новее)
old_str = "\"a'GG'g-CH2OHCH2CH2OH;v=0;\"".replace("'", "''")
new_str = "'a'GG'g-CH2OHCH2CH2OH;v=0;'".replace("'", "''")
query_string = "UPDATE {tbl} SET {col} = '{new_str}' WHERE ( {col} = '{old_str}' )".format(
tbl = NameOfPartFuncTable,
col = ColumnNameForNamePartFunc,
old_str = old_str,
new_str = new_str
)
person
faidros
schedule
24.05.2020