有没有一种方法可以使用sqlite和python编写以列为参数的insert语句?

eoigrqb6  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(324)

我试图通过解析原始json数据并将其插入到sqlite db的表中来清理这些数据。
我的表中有22列,我想找到一种循环的方法,这样我就不需要写22个循环来插入数据或一列。
我已通过以下方式简化了我正在尝试的方法:

import sqlite3

conn = sqlite3.connect('cdata.sqlite')
cur = conn.cursor()

column = 'name'
value = 'test'

cur.execute('''INSERT INTO COMPANY (?)
            VALUES (?)''',(column,),(value,)) 

conn.commit()
conn.close()

此时不起作用,返回错误 TypeError: function takes at most 2 arguments (3 given) .
有人知道是否可以使用2个参数编写sqlite insert语句,比如这样,或者我可以通过其他方式遍历列?

bxjv4tth

bxjv4tth1#

样本如下:

import sqlite3

conn = sqlite3.connect("cdata.sqlite")
cur = conn.cursor()

column = ("name", "age")
table = f"CREATE TABLE IF NOT EXISTS COMPANY ({column[0]} text, {column[1]} text);"

cur.execute(table)

name = "hello"
age = "1"
sql_stmt = f"INSERT INTO COMPANY({column[0]},{column[1]}) VALUES ('{name}', '{age}')"

cur.execute(sql_stmt)

with conn:
    cur.execute("SELECT * FROM COMPANY")
    print(cur.fetchall())

conn.commit()
conn.close()

相关问题