[英]psycopg2 “NULL” value from csv for sql insert
我正在嘗試使用psycopg2從csv文件上傳一些數據。 我知道COPY和copy_from命令,但是就我而言,無論如何我都需要使用insert語句。 我的問題是csv中具有整數值的列可以包含“ NULL”。 並且當游標嘗試執行insert postgres返回錯誤時:整數的無效輸入語法:“ NULL” psycopg2文檔說您應該使用None來將Null傳遞給數據庫,但是在我的情況下,我必須檢查所有字段值是否相等為“ NULL”,如果是,則傳遞None。 看起來不正確。 有沒有辦法將“ NULL”讀取為None或將“ NULL”傳遞給psycopg2而無需進行任何檢查。
with open('/my.csv', 'rb') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
pg_cursor.execute(
""" insert into "MyTable"("IntField")
values(%s)""", row
)
conn.commit()
您可以使用列表推導將'NULL'
替換為None
:
row = [None if cell == 'NULL' else cell for cell in row]
pg_cursor.execute(
""" insert into "MyTable"("IntField")
values(%s)""", row
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.