使用 pyodbc 插入空值

Insert Null value with pyodbc

我有这个代码

import pyodbc 
conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=RON\SQLEXPRESS;'
                      'Database=TestDB;'
                      'Trusted_Connection=yes;')

cursor = conn.cursor()
cursor.execute('SELECT * FROM TestDB.dbo.Person')
city = 'NULL'
cursor.execute(" INSERT INTO TestDB.dbo.Person (Name, Age, City) VALUES ('Bob',55,'{}')".format(city))
conn.commit()

插入 NULL value 不是真正的 NULL ,我必须输入 '{}' 因为如果我想在 city 变量中设置值,它必须介于 '

city = 'NEW YORK'
cursor.execute(" INSERT INTO TestDB.dbo.Person (Name, Age, City) VALUES ('Bob',55,'{}')".format(city))

那我该如何处理呢?当 var 不为 NULL 时输入 NULL 或值 ?

在查询中使用参数,而不是字符串格式

city = None
cursor.execute(" INSERT INTO TestDB.dbo.Person (Name, Age, City) VALUES ('Bob',55,?)", (city, ))
conn.commit()

你使用参数。

Name, Age, City = 'Bob', 55, None
cursor.execute("INSERT INTO TestDB.dbo.Person (Name, Age, City) VALUES (?, ?, ?)", (Name, Age, City))