【发布时间】:2020-12-04 23:56:28
【问题描述】:
我尝试使用 pandas.to_sql 方法将数据上传到 MySQL 数据库:
df5.to_sql(full_table_name, con=engine, if_exists='append',chunksize=10000)
,但我收到错误消息:
您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 '%(Location(LAC))s, %(CI(CI))s,
附近使用的正确语法 ...
(此错误的背景:http://sqlalche.me/e/13/f405)
当我检查 sql server 日志时,我发现:
8 Query INSERT INTO kpi_d_ho (`index`, `Start Time`, `End Time`, `Location (LAC)`, `Cell (CI)`, `Node(Id)`, `Number of TD`)
VALUES (0, '2020-12-01 00:00:00', '2020-12-02 00:00:00', %(Location (LAC))s, %(Cell (CI))s, %(Node(Id))s, 0)
我检查了数据框,是否可以 - 所有行都包含数字值(不是列名)。 看起来熊猫发送到 MySQL 列名而不是值。当我删除列名中的括号时 - 我的脚本成功运行,那么为什么它不适用于包含括号的列?
【问题讨论】:
-
位置CELL和节点没有填充数据,只有列名,所以你必须检查一下
-
我会避免表名和列的括号和空格等特殊字符。然后命名参数可以工作。加上查询更容易。