1
在缺乏如何從字典中創建了一個Python sqlite
查詢任何來源的,我建我自己:sqlite的認爲我沒有綁定
updates = ', '.join(["`"+field+"`" + '=:'+field for field in information.keys() if field != 'name'])
where = ' WHERE name == :name'
values = {':'+field: value for field, value in information.items()}
query = 'UPDATE firms SET ' + updates + where
c.execute(query, values)
不過,我得到
sqlite3.ProgrammingError: You did not supply a value for binding 1.
這befuddles我,我想我已經提供了所有我應該有:
In[374]: query
Out[374]: 'UPDATE firms SET `founded`=:founded, `size`=:size, `headquarters`=:headquarters, `type`=:type, `revenue`=:revenue WHERE name == :name'
In[375]: information
Out[375]:
{'founded': '1962',
'headquarters': 'Bentonville, AR',
'name': 'Walmart',
'revenue': '$10+ billion (USD) per year',
'size': '10000+ employees',
'type': 'Company - Public (WMT)'}
如果不是那些反引號是雙引號? – holdenweb
@holdenweb我不熟悉sqlite,但正如我從別處回憶,反引號用於字段,並用雙引號表示字符串值 – FooBar
嗯,我知道字符串是由所有已知版本的SQL中的單引號分隔。在所有我熟悉的領域中,字段名稱(引用時)都需要雙引號。也許這是錯誤。在查詢中,您不需要引用列名稱,因爲它們都是有效的SQL標識符 – holdenweb