我有一个带有一些nvarchar属性的表。我试图在其中插入值,有时一些值为NULL。当我尝试将其插入数据库时,它只插入没有空值的元组。这是我的代码的一部分:
self.cursor.execute("INSERT INTO product VALUES (N{0},N{1},N{2},{3})".format(item['name'],item['category'],item['original_price'],item['last_30_days_sales_volume']))
self.connection.commit()
通过以下try..except:
将值插入到item中try:
item['last_30_days_sales_volume']= ("\'"+self.driver.find_element_by_xpath('...')+"\'")
except NoSuchElementException, e:
item['last_30_days_sales_volume']= None
任何帮助都会非常感激!
答案 0 :(得分:0)
经过多次尝试,我找到了解决方案。传递None值不起作用,但是在开头没有N的情况下传递值'NULL',这是utf-8所需要的,在数据库中保存所有具有NULL值的元组,而不是'NULL'字符串。因此,我的查询最后是:
self.cursor.execute("INSERT IGNORE INTO product VALUES (N'{0}',{1},{2},{3})".format(item['name'],('N\''+item['category']+"\'" if item['category'] else 'NULL'),('N\''+item['original_price']+"\'" if item['original_price'] else 'NULL'),item['last_30_days_sales_volume'].encode('utf-8')))