我正在使用一个API,根据查询返回不同的字典。所以,因为我不能确定我会拥有所需的钥匙,所以我使用dict.get()
来避免提高KeyError
。但我目前将这些结果插入到数据库中,并希望避免用None
填充行。SQLite忽略无INSERT
什么是处理这个问题的首选方法?
我正在使用一个API,根据查询返回不同的字典。所以,因为我不能确定我会拥有所需的钥匙,所以我使用dict.get()
来避免提高KeyError
。但我目前将这些结果插入到数据库中,并希望避免用None
填充行。SQLite忽略无INSERT
什么是处理这个问题的首选方法?
使用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', '')
''
数据库中有几列是NOT NULL。然后怎样呢? –
@DavidMetcalfe:检查更新代码。在这种情况下,您可以将其设置为空字符串 –
你想让它充满什么?你可以给'.get()'函数提供第二个参数,如果没有找到key,它将返回你的第二个参数。像这样'dct.get('key','default')' –