Я пытаюсь вставить некоторые строковые значения в postgresql db. а именно:
macaddress, timestamp (date time format) type of device (string) subtype (string)
пример:
INSERT INTO device (address, tstamp, type, subtype)
VALUES ('00:00:00:00','2012-02-22 19:31:26','computer','notebook')
Я использую скрипт psythopg2 python для вывода данных и появляется следующая ошибка:
c.executemany("INSERT INTO device VALUES (default, '%s','%s','%s','%s')",
(mac, date, typedev, subtype,))
TypeError: not all arguments converted during string formatting
команда, которую я использую для вставки:
c.executemany("INSERT INTO device VALUES (default, '%s','%s','%s','%s')",
(mac, date, typedev, subtype,))
Есть пара проблем:
%s
). Хорошие люди psycopg2 гарантируют, что это будет сделано правильно для вас.executemany()
ожидает последовательность параметров. Так как вы только вставляете одну строку, вы можете просто использовать execute()
:
c.execute("INSERT INTO device VALUES (default,%s,%s,%s,%s)",
(mac, date, typedev, subtype,))
Когда вам нужно использовать executemany()
забудьте передать ей последовательность параметров, например:
c.executemany("INSERT INTO device VALUES (default,%s,%s,%s,%s)",
[(mac, date, typedev, subtype,),])