SQLITE3 - 如何使用变量作为列名称向列添加值?

时间:2018-01-27 16:19:30

标签: python json database sqlite

插入值时,如何使用变量“element”作为列的名称?当我运行它时,它会尝试向名为element的列添加一个值,但我希望它将值插入到具有分配给“element”的名称的列中。

import sqlite3
import json

with open('myDataFile.json') as json_data:
    d = json.load(json_data)


for element in d["cards"][0]:
    con = sqlite3.connect("MTGcards.db")
    cur =  con.cursor()
    cur.execute("""INSERT INTO Cards (element) VALUES (?)""",(d["cards"][0][element]))
    con.commit
    cur.close()
    con.close()

如果知道有用,“d”是一个大型的json文件,其中包含来自Magic the Gathering的不同卡片的卡片统计信息。我正在尝试将卡的每个stat插入到数据库中的相应列中,因此它的名称将进入名称列ect ...

这就是我的回忆。

Traceback (most recent call last):
  File "C:\Users\Alex\Desktop\NEA code\jsonFileReadTest.py", line 11, in <module>
    cur.execute("""INSERT INTO Cards (element) VALUES (?)""",(d["cards"][0][element]))
sqlite3.OperationalError: table Cards has no column named element

0 个答案:

没有答案