将NULL值插入nvarchar python mysql

时间:2017-04-20 08:39:50

标签: python mysql

我有一个带有一些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

任何帮助都会非常感激!

1 个答案:

答案 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')))