python3:只将更新的csv文件的新行添加到mysql数据库

pftdvrlh  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(217)

我每天使用selenium多次下载同一个csv文件。我希望每小时将这个重新下载的csv文件的新行的内容附加到mysql中。
在只想捕获csv中新创建的行之前,我使用的原始代码是:

import pymysql
from sqlalchemy import create_engine
import pandas as  pd

data = pd.read_csv('CleanCSV.csv', sep=',', parse_dates=[0])
new_df2 = data.assign(time_stamp=datetime.datetime.now())
cnx = create_engine('mysql+pymysql://root:root@localhost:3306/stats', 
echo=False)
new_df2.to_sql(name='stats', con=cnx, if_exists='replace', index=False)
print('Imported')

当然,上面的只是替换表及其内容,但是我想保留原始内容,只添加csv中找到的新行。
此代码后来演变为(使用stackoverflow搜索):

import pymysql
from sqlalchemy import create_engine
import pandas as pd

data = pd.read_csv('Callbacks_Cleaned.csv', sep=',')
cnx = create_engine('mysql+pymysql://root:root@localhost:3306/stats', 
echo=False)
for i in range(len(data)):
   data.iloc[i:i + 1].to_sql(name="callbacks", if_exists='append', con=cnx)

然而,这是行不通的。我一直收到一个完整性/主键:
sqlalchemy.exc.integrityerror:(pymysql.err.integrityerror)(1062,“键'primary'的重复条目'0')
在此,我们非常感谢您的指导。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题