我正在使用一個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')' –