我想将数据帧附加到mysql表。以下代码给出了错误:DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': not all arguments converted during string formatting
代码:
import pandas as pd
import pymysql
from datetime import date
from datetime import datetime
from dateutil.relativedelta import relativedelta
from time import sleep
now = str(datetime.now())[:19]
# APPEND TO DB TABLE
print('Started at {}'.format(now))
dates = pd.date_range(start='2018-01-02', end='2018-01-11')
for date in dates:
print('Appending {} to {}...'.format(date, date+relativedelta(days=1)))
conn = pymysql.connect('host','user', 'pass', 'db')
query='''select ... '''.format(date, date+relativedelta(days=1))
df = pd.read_sql(query, conn)
df.index.name = 'id'
df.to_sql('table_name', con=conn, if_exists='append')
print('-> DONE')
sleep(3)
print('Finished appending at {}'.format(now))
如何避免此错误,并使用pymysql附加数据框。我已经尝试了sqlalchemy,但是却得到了ModuleError: MySQLdb module not found
的帮助。我还尝试了brew install MySQL
然后失败的pip install mysqlclient
,然后又失败了的$ sudo apt-get install python3.7-dev libmysqlclient-dev
,因为apt-get
不是我的bash终端中的命令...
任何帮助将不胜感激