簡體   English   中英

用於SQL插入的csv的psycopg2“ NULL”值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM