Python3: только добавлять новые строки обновленного файла CSV в базу данных MySQL - PullRequest
0 голосов
/ 14 ноября 2018

Я загружаю один и тот же файл CSV несколько раз в день с помощью Selenium. Я хочу добавлять содержимое новых строк этого повторно загруженного файла 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.

Этот код позже развился в (с поиском в стеке):

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, «Дублирующая запись« 0 »для ключа« ПЕРВИЧНЫЙ »)

Любое руководство здесь очень ценится здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...