Python 3.7 to_sql数据库错误:在SQL上执行失败

时间:2019-06-11 12:48:15

标签: python mysql pandas python-3.7

  • Python = Python 3.7.3
  • Pandas ='0.24.2'
  • OS = MacOS Mojave 10.14

我想将数据帧附加到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终端中的命令...

任何帮助将不胜感激

0 个答案:

没有答案