У меня возникли проблемы с форматированием списка для вставки с помощью psycopg. Вот пример кода, который я пытаюсь сделать. В основном я просто читаю данные из одной таблицы и пытаюсь вставить их в другую таблицу.
Код:
cur.execute("""select data from \"Table1\" where lat=-20.004189 and lon=-63.848004""")
rows = cur.fetchall()
print rows
cur.execute("""INSERT INTO \"%s\" (data) VALUES (ARRAY%s)""" % (args.tableName,rows)))
Результат, возвращаемый первым запросом выбора, выглядит следующим образом:
[([6193, 3975, 4960, 5286, 3380, 970, 3328, 3173, 2897, 2457, 2443, 2674, 2172, 2740, 3738, 4907, 3691, 4234, 3651, 3215],)]
Когда я пытаюсь вставить это в другую таблицу, я получаю следующую ошибку формата.
cur.execute(cur.mogrify("""INSERT INTO \"%s\" (data) VALUES (%s)""" % (args.tableName,rows)))
psycopg2.ProgrammingError: syntax error at or near "["
LINE 1: INSERT INTO "DUMMY1km" (data) VALUES ([([6193, 3975, 4960, 5...
Пробовал cur.mogrify, но вроде не помогает.
Пожалуйста, дайте мне знать, если у кого-то есть решение этой проблемы.
Спасибо, Ади.
cur.executemany
заявление. А что такоеvars_list
? 14.10.2011cur.executemany("""INSERT INTO \"%s\" (data) VALUES (%s)""" % (args.tableName,rows))
vars_list
был включен в TypeError, выброшенный python 14.10.2011rows
за скобки. (Посмотрите, как я это написал в своем посте выше). 14.10.2011