2014-01-15 3 views
1

Я пытаюсь вставить словарь с sqlsoup. Unfortuntely это не работает:как вставить словарь с 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") 

который работает также. Помогите!

+0

Вы пытаетесь вставить словарные или ключевые пары значений в словарь? – praveen

ответ

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) 

В стороне, в то время как ** может распаковать именованные аргументы из словаря, один единственный * можно использовать для распаковки позиционных аргументов из списка или кортежа.

+0

ты мой герой! будет принимать, как только это позволит мне –

Смежные вопросы