Python Sqlite动态列名
我有下面的Sqlite设置,试图用Python Sqlite动态列名,python,sqlite,Python,Sqlite,我有下面的Sqlite设置,试图用键项作为列名和值更新Tablename表 问题是我想将所有项目添加到单个记录中,其中名称不会更改,但项目更改为在键中获取所有项目 我的代码将对循环执行此操作,但对于多个记录,我只需要一个包含所有项的记录 Keys=['a','b',etc] Tablename='Asfoor' Name='Deek' for item in keys: data=[Name,Item] cur.executemany("INSERT IN
键
项作为列名和值更新Tablename
表
问题是我想将所有项目
添加到单个记录中,其中名称
不会更改,但项目
更改为在键中获取所有项目
我的代码将对循环执行此操作,但对于多个记录,我只需要一个包含所有项的记录
Keys=['a','b',etc]
Tablename='Asfoor'
Name='Deek'
for item in keys:
data=[Name,Item]
cur.executemany("INSERT INTO "+Tablename+" (Name,"+Item+") VALUES(?,?)",(data,))
完整代码:
import sqlite3
import sys
tablename='asfoor'
table_data=['Name','a','b','c']
try:
con = sqlite3.connect('dbtrials.db')
cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS "+tablename+"")
cur.execute("CREATE TABLE "+tablename+" (ID INTEGER PRIMARY KEY AUTOINCREMENT ,Name TEXT, "+table_data[1]+" TEXT, "+table_data[2]+" TEXT, "+table_data[3]+" TEXT )")
keys=['a','b','c']
name='deek'
for item in keys:
data=[name,item]
cur.executemany("INSERT INTO "+tablename+" (name,"+item+") VALUES(?,?)",(data,))
cursor = cur.execute("select * from "+tablename+" ")
for row in cursor :
print(row)
except sqlite3.Error as e:
print ("Error %s:" % e.args[0])
sys.exit(1)
finally:
if con:
con.close()
这取决于您的SQL模式。您的数据库模式是否已初始化?您是否考虑过使用pandas
库,还是只想使用sqlite
模块来实现这一点?我想在sqlite中实现它。您没有回答我的第一个问题。您的数据库模式是什么?它已经初始化了吗?我对python和Sqlite还不熟悉。所以我不明白你们的问题是什么意思。数据库模式与python无关。此上下文中的数据库模式与sql数据库有关,即sqlite数据库。您以前使用过sql吗?如果是这样的话,您至少应该知道如何创建表,而不仅仅是插入到表中。