I want to insert data from a CSV file into a PostgreSQL table. The table
结构如下。但是我无法给出INTEGER类型值的输入。 它表示错误喜欢 - DataError:无效输入语法整数: “vendor_phone” LINE 1:... vendor_phone,vendor_address)VALUES( 'VENDOR_NAME','vendor_ph ...从CSV文件插入到整数值类型的PostgreSQL表
它是工作正常,如果我用VARCHAR类型,但我需要使用整数值。
CREATE TABLE vendors (
vendor_id SERIAL PRIMARY KEY,
vendor_name VARCHAR(100) NOT NULL,
vendor_phone INTEGER,
vendor_address VARCHAR(255) NOT NULL
)
import psycopg2
import csv
database = psycopg2.connect (database = "supplier", user="postgres", password="1234", host="localhost", port="5432")
光标= database.cursor()
vendor_data = csv.reader(open('vendors.csv'),delimiter=',')
for row in vendor_data:
cursor.execute("INSERT INTO vendors (vendor_name,vendor_phone,vendor_address)"\
"VALUES (%s,%s,%s)",
row)
print("CSV data imported")
cursor.close()
database.commit()
database.close()
看仔细错误信息,它说你要插入单词“ vendor_phone“,这显然不是一个整数。这听起来像你有一个标题行,你需要跳过。 – IMSoP
请参阅此链接..可能对您有所帮助... (1)https://stackoverflow.com/questions/2987433/how-to-import-csv-file-data-into-a-postgresql-table (2)https://stackoverflow.com/questions/19400173/how-should-i-import-data-from-csv-into-a-postgres-table-using-pgadmin-3 –
我需要输入整数值....此外,我有一些我的代码 - header = next(vendor_data) rows = [header] + [[row [0],int(row [1]),row [2] (供应商名称,vendor_phone,vendor_address)“ ”VALUES(%s,%??,%s)“, row) – Neepa