如果不使用.to_sql退出,则将数据追加到表

时间:2019-04-24 09:49:15

标签: python sqlite

使用以下代码:

conn = sqlite3.connect(new_database_name)
dataset_symbol_sorted.to_sql(name = symbol_name_changed , con =  conn, if_exists="append")
cursor = conn.cursor()

如果现在还不存在,我想现在添加数据。该表作为称为“日期”的列,应用作标识符。有没有简单的方法可以做到这一点?

我尝试了一种解决方案,在该解决方案中附加并删除重复项,但这不是理想的解决方案。

1 个答案:

答案 0 :(得分:0)

我相信您的问题的答案可以在这里找到:Pandas to_sql fails on duplicate primary key

(很抱歉,我仍无法发表评论作为答案)

基本上,Pandas没有INSERT IGNORE,因此有以下选择:

  1. 尝试逐行追加数据,并将IntegrityError逻辑放入try-except块中(但效果很差)

  2. 将sql数据获取到Pandas,使用它查找重复的索引并仅上载新的索引(如果数据较小,我会这样做)

  3. 将sql上载到登台表并使用纯sql处理行

顺便说一句,将列命名为“日期”不是一个好主意,因为它是许多语言和数据库中的保留字。