INSERT字典sqlite3(python)

时间:2014-04-19 10:57:12

标签: python dictionary sqlite

sqlite新手并且语法有问题。

我需要遍历字典的每个键并将dict [key]插入到与字典键同名的列中。如果它有任何区别,dict [' Url']包含主键,并且所有行都已创建。

到目前为止,我认为我已经目睹了所有可能的OperationalError。

for key in merged_dict:
    cur.execute("INSERT INTO Games VALUES (?,?)", (key, merged_dict[key]))

1 个答案:

答案 0 :(得分:3)

您可以为所有插入使用命名参数:

cur.execute("INSERT INTO GAMES (key1, key2, key3, key4) VALUES (:key1, :key2, :key3, :key4)",
            merged_dict)

这将从字典中按名称获取参数,但这些键 do 必须存在。要支持可能不存在的密钥(将密码默认为NULL),请使用defaultdict object来使用None来删除密钥:

from collections import defaultdict

params = defaultdict(lambda: None, merged_dict)
cur.execute("INSERT INTO GAMES (key1, key2, key3, key4) VALUES (:key1, :key2, :key3, :key4)",
            params)