2015-03-30 2 views
0

как отформатировать строку, чтобы вставить ее в таблицу в postgresql? пример у меня есть SQL:Python: как вставить значение в таблицу postgresql?

req="INSERT INTO table_a values('%s','%s','%s','%s')" 

и значения

values=["Socit d'Invest Variable", '6465', 'hg', 'fk_id'] 
cursor.execute(req,tuple(values)) 

Я получаю ошибку:

psycopg2.ProgrammingError: syntax error at or near "Socit" 
LINE 1: ...column0, column1, column2, column3) Values (''Socit d'Invest... 

любая идея, как изменить строку с помощью апостроф ' в двойная кавычка "?

+0

Какую версию psycopg2 вы используете? Он должен автоматически уйти от него для вас. Взгляните на пример из документов: http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries – freakish

+0

это ошибка в цитате при формировании строки в ответ на ответ – m3asmi

ответ

2

ошибка была в req

req="INSERT INTO table_a values('%s','%s','%s','%s')" 

должны быть без кавычек '

req="INSERT INTO table_a values(%s,%s,%s,%s)" 
0

Я думаю, вам нужно использовать обратную косую черту, чтобы избежать вашей singlequote в строке для выполнения запроса правильно, так как использование:

values = ['Socit d\'Invest Variable', '6465', 'hg', 'fk_id'] 

или

values = ["Socit d\'Invest Variable", '6465', 'hg', 'fk_id'] 

должны работать

+0

нет той же ошибки – m3asmi

+0

@ m3asmi Как насчет использования 'req =" INSERT INTO table_a значения (% s,% s,% s,% s) "?? –

+0

да, это то, что я сделал Я ставлю его ответом – m3asmi

Смежные вопросы