У меня есть скрипт, который переносит данные из одной базы данных в другую, написанные на python и sql, используя библиотеку psycopg2.
Я извлекаю строку из первой базы данных и сохраняю ее для дальнейшего использования в списке, чтобы я могпоместите его во вторую базу данных, когда я закончу собирать все необходимые данные.
Если в строке есть апостроф, то python будет представлять строку с помощью "". Проблема в том, что sql интерпретирует "" как указание имени столбца, а "" для строк, тогда как python интерпретирует оба как строки. Я хочу заставить python использовать апострофы для представления строки (или другого подходящего обходного пути)
Google ничего не обнаружил. Даже не могу найти упоминания о том факте, что python будет использовать "", когда в вашей строке есть апострофы. Я подумал о том, чтобы заменить апострофы в моей строке другим символом и преобразовать его позже, но это выглядит как неуклюжее решение.
Например
MyString = 'it\'s'
MyList = [MyString]
print(MyList) # returns "it's"
print(MyList[0]) # returns it's
Когда я вставляю новые значения вБаза данных Я вставляю весь список в качестве значений.
INSERT INTO table VALUES MyList
Здесь возникает ошибка, потому что строка использует «» вместо «». Решение на стороне Python или SQL будет работать.