2016-12-04 55 views
0

我正在使用一个API,根据查询返回不同的字典。所以,因为我不能确定我会拥有所需的钥匙,所以我使用dict.get()来避免提高KeyError。但我目前将这些结果插入到数据库中,并希望避免用None填充行。SQLite忽略无INSERT

什么是处理这个问题的首选方法?

+0

你想让它充满什么?你可以给'.get()'函数提供第二个参数,如果没有找到key,它将返回你的第二个参数。像这样'dct.get('key','default')' –

回答

1

使用NULL作为默认值dict.get()。如果key不在您的dict对象中,它将返回NULL而不是None。数据库中的“NULL”(大部分)等于Python中的None。例如:

>>> my_dict = {} 

#       v Returns `NULL` if key not found in `my_dict` 
>>> my_dict.get('key', 'NULL') 
'NULL' 

在情况下,你必须列NOT NULL,将它们设置为空字符串。例如:

>>> my_dict.get('key', '') 
'' 
+0

数据库中有几列是NOT NULL。然后怎样呢? –

+1

@DavidMetcalfe:检查更新代码。在这种情况下,您可以将其设置为空字符串 –