python - 将熊猫数据框导出到 sql 服务器时如何修复 ProgrammingError?
问题描述
尝试对 sql 执行数据帧时遇到编程错误。
import pymysql
import sqlalchemy
database_username = 'myname'
database_password = 'password'
database_ip = 'some host:port'
database_name = 'myname'
database_connection = sqlalchemy.create_engine('mysql+pymysql://{0}:{1}@{2}/{3}'.
format(database_username, database_password,
database_ip, database_name), pool_recycle=1, pool_timeout=57600).connect()
DF.to_sql(con=database_connection, name='IOS', schema=None, if_exists='replace', index=False, index_label=None, dtype=None)
我希望将数据导出到远程数据库。实际结果是:我被告知存在语法错误,但插入子句和参数对我来说似乎很有意义......
ProgrammingError: (pymysql.err.ProgrammingError)
(1064, u"You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right syntax to use near '5bf27ed941f800ea780c2c5425ca1c96''),
(b''cfca791b5a1e18af1724ae8d42e85ee0''),
(b''' at line 1")
[SQL: u'INSERT INTO `IOS` (`MD5`) VALUES (%(MD5)s)']
[parameters:
({'MD5': '5bf27ed941f800ea780c2c5425ca1c96'},
{'MD5': 'cfca791b5a1e18af1724ae8d42e85ee0'},
{'MD5': '4cb1e3d62ff5a96628fa97f1e966f723'},
{'MD5': '9e35c083694bd8fd12e5c229c2a0008c'},
{'MD5': '4bba3f25817cff7c441d13e3bc5ace5e'})]
我发现我可以在上面使用的代码中导出某些类型的数据帧,但是它不适用于 bigquery 结果生成的数据帧。这是上面代码中引用的数据帧 DF 中的内容:
%bq query -n md5query
SELECT id, MD5
FROM `dataset.IOS`
MD5 = md5query.execute().result().to_dataframe()
DF = MD5['MD5']
解决方案
推荐阅读
- kotlin - Flutter 插件创建引发 Kotlin 问题
- javascript - 在 Jest 测试快照上返回未定义的字符串连接
- java - 从 URL 中提取 PathParam
- python - 我应该如何在 Python 代码中修复这个错误?
- c++ - 如何为使用 libssl 功能的 C++ 代码编写单元测试
- android - Android 11 从 EXIF 获取图像方向
- c# - Azure DevOps Pipeline 无法找到来自其他项目的 DLL
- python - 在方形影线之间执行减法运算
- node.js - Prettier installed globally but command not found
- vue.js - 如何通过参数传递整个对象