Используя Panadas 2.2.3, sqlite3.version 2.6.0 и python 3.12.5,
я получаю сообщение об ошибке «таблица... уже выходит» при использовании to_sql с if_exists='append'. Я просто пытаюсь добавить некоторые данные из Pandas df в таблицу базы данных SQLite. Использование if_exists='replace' дает тот же результат.
Чтобы убедиться, что соединение с базой данных активно и столбцы совпадают, я использовал несколько простых операторов печати в блоке первой попытки и неудачный to.sql во втором блоке попытки. Также в первом блоке используется «оператор выбора» из той же таблицы. Первый блок выполняется без исключения, а второй блок выдает сообщение «таблица «groupedData» уже существует»: (см. print('ERROR Try 2'))
Исходный код:< /p>
try:
print(db_conn)
print(table_grouped)
data = [x.keys() for x in db_conn.cursor().execute(f'select * from {table_grouped};').fetchall()]
print(data)
except Error as e:
print('ERROR Try 1')
print(e)
try:
print(df_grouped.head(5))
df_grouped.to_sql(table_grouped, db_conn, if_exists='append', index=False)
#if_exists : {‘fail’, ‘replace’, ‘append’}
db_conn.commit()
except Error as e:
print('ERROR Try 2')
print(e)
Выход:
groupedData
[['CustomerID', 'TotalSalesValue', 'SalesDate']]
CustomerID TotalSalesValue SalesDate
0 12345 400.0 2020-02-01
1 12345 1050.0 2020-02-04
2 12345 10.0 2020-02-10
3 12345 200.0 2021-02-01
4 12345 50.0 2021-02-04
ERROR Try 2
table "groupedData" already exists
Подробнее здесь: https://stackoverflow.com/questions/790 ... end-with-p