如何使用sqlsoup插入字典

时间:2014-01-15 08:34:43

标签: python dictionary sqlalchemy sqlsoup

我正在尝试使用sqlsoup插入字典。不幸的是,这不起作用:

db.blah_table.insert({"blah_field" : "blah_value"})

它给了我一个错误

TypeError: insert() takes exactly 1 argument (2 given)

sqlsoup的更新工作正常。我真的不想把它分解成

db.blah_table.insert(blah_field = "blah_value")

也适用。帮助!

1 个答案:

答案 0 :(得分:4)

在python中,您可以使用**参数打包语法将字典作为关键字参数传递给任何函数。

如果您将字典arguments定义为:

arguments = {'blah_field': 'blah_value'}

您可以使用该字典作为关键字参数调用db.blah_table.insert,如下所示:

db.blah_table.insert(**arguments)

在幕后,这相当于:

db.blah_table.insert(blah_field=blah_value)

顺便说一句,虽然**可以从字典中解压缩命名参数,但可以使用单个*从列表或元组中解压缩位置参数。