从变量插入 sqlite3

我一直在尝试创建一个数据库,我的表的列名来自一个列表:


import sqlite3

L     = ["Nom","Age","Taille"]

list2 = ["Karl", "11", "185"]

M = []

R = 0

con = sqlite3.connect(":memory:")

con.execute("CREATE TABLE master ("+",".join(L)+")")

然后要么:


for e in L:

    R += 1

    con.execute("INSERT INTO master("+",".join(L)+") VALUES (?,?,?)",list2[R-1])

或者


for e in L:

    R += 1

    con.execute("INSERT INTO master(e) VALUES (?)",list2[R-1])

或者


listX=[list2[0],list2[1],list2[3])

con.executemany("INSERT INTO master ("+",".join(L)+") VALUES ("+",".join(M)+")", (listX))


www说
浏览 72回答 1
1回答

拉丁的传说

在你的情况下:import sqlite3con = sqlite3.connect(":memory:")columns = ["Nom", "Age", "Taille"]columns_str = '"' + '","'.join(columns) + '"'con.execute(f"CREATE TABLE people ({columns_str})")data = [  ('Karl', 11, 185)]stmt = f"INSERT INTO people ({columns_str}) VALUES (?, ?, ?)"con.executemany(stmt, data)另外,可能不要打电话给你的桌子master——稍后会变得非常混乱。L像和 之类的名字list2也没有帮助。明确命名变量,按照它们的含义或包含的内容命名。未来的你会感谢你的。也许更干净一点:import sqlite3con = sqlite3.connect(":memory:")columns = ("Nom", "Age", "Taille")con.execute("CREATE TABLE people (%s, %s, %s)" % columns)data = [  ('Karl', 11, 185)]stmt = f"INSERT INTO people (%s, %s, %s) VALUES (?, ?, ?)" % columnscon.executemany(stmt, data)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python