【发布时间】:2017-07-02 11:02:52
【问题描述】:
我尝试执行以下查询
SELECT user_id, user_agent_id, requests
FROM riskanalysis_user_http_ua_stats
WHERE since>= :since AND until< :until'
我尝试以下熊猫代码
sql = 'SELECT user_id, user_agent_id, requests ' \
'FROM riskanalysis_user_http_ua_stats ' \
'WHERE since>= :since AND until< :until'
dataframe_records = pd.read_sql_query(sql, engine,
params={'since':datetime_object,
'until':datetime_object}
我收到以下错误
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string 'SELECT user_id, user_agent_id, requests FROM riskanalysis_user_http_ua_stats WHERE since>= :since AND until< :until'
我使用pymysql 作为驱动程序和 MySQL 数据库。如何在 sql 查询中传递命名参数?
编辑 1:更正了参数顺序,但现在我得到以下内容
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1064, u"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':since AND until< :until' at line 1") [SQL: 'SELECT user_id, user_agent_id, requests FROM riskanalysis_user_http_ua_stats WHERE since>= :since AND until< :until'] [parameters: {'since': datetime.datetime(2015, 6, 18, 0, 0, tzinfo=tzutc()), 'until': datetime.datetime(2015, 6, 18, 0, 2, tzinfo=tzutc())}]
【问题讨论】:
标签: python mysql pandas sqlalchemy