【发布时间】:2018-08-17 14:21:36
【问题描述】:
我正在尝试将大小为 (8760, 1574) 的数据框插入到 SQLite 的表中。我的代码如下:
class DatabaseWorker(object):
def __init__(self, db_name):
self.db = db_name
def create_table(self, table_name, column_names):
conn = sqlite3.connect(self.db)
cur = conn.cursor()
q1 = 'DROP TABLE IF EXISTS %s' %(table_name)
q2 = 'CREATE TABLE ' + table_name + ' ' + '(' + ', '.join(str(x) for x in column_names) + ')'
cur.execute(q1)
cur.execute(q2)
conn.commit()
conn.close()
def insert_table(self, table_name, data):
conn = sqlite3.connect(self.db)
data.to_sql(table_name, conn, if_exists='append', index=False)
conn.commit()
conn.close()
cnx = DatabaseWorker("users")
cnx.create_table("user_activity", df_final.columns.values.tolist())
cnx.create_table("user_similarity_matrix", df_transformed.columns.values.tolist())
cnx.insert_table("user_activity", df_final)
cnx.insert_table("user_similarity_matrix", df_transformed)
df_final 的大小为(249238, 7),df_transformed 的大小为(8760, 1574)。插入df_final 没有错误,但插入df_transformed 时出现错误。错误如下:
----> 5 cnx.insert_table("user_similarity_matrix", df_transformed)
---> 30 data.to_sql(table_name, conn, if_exists='append', index=False)
pandas_sql.to_sql(frame, name, if_exists=if_exists, index=index, 索引标签=索引标签,架构=架构, chunksize=chunksize, dtype=dtype)
OperationalError: SQL 变量太多
"Too many SQL variables" error in django witih sqlite3 上的答案之一有 999 个变量的限制?有什么办法可以回避。我会很感激你的建议。提前非常感谢。
【问题讨论】:
标签: python python-3.x sqlite