2

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")

これも同様に機能します。ヘルプ!

4

1 に答える 1

5

Python では、引数パッキング構文を使用して、辞書をキーワード引数として任意の関数に渡すことができます。**

arguments次のように定義された辞書がある場合:

arguments = {'blah_field': 'blah_value'}

db.blah_table.insert次のように、その辞書をキーワード引数として呼び出すことができます。

db.blah_table.insert(**arguments)

内部的には、これは次と同等です。

db.blah_table.insert(blah_field=blah_value)

余談ですが**、辞書から名前付き引数をアンパックできますが、シングル*を使用してリストまたはタプルから位置引数をアンパックできます。

于 2014-01-15T08:36:34.603 に答える