【Python】“pandas”库“to_sql”报错“Invalid MySQL identifier”处理记录

本文主要是介绍【Python】“pandas”库“to_sql”报错“Invalid MySQL identifier”处理记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


     最近又要帮客户写脚本拉一份统计日报,就先把一堆一堆的小SQL写好测好后,准备用Python封装一下。但是用到第三方“pandas”模块的“to_sql”方法往MySQL数据库写数据时,却报了“Invalid MySQL identifier”无效标识符的错。在网上找了一下,经过尝试,顺利解决。


     参考SO,http://stackoverflow.com/questions/30586292/valueerror-mysql-identifier-cannot-be-entirely-numeric-with-pandas-to-sql,最简单粗暴的办法就是注掉模块安装包(例如我的在C:\Python27\Lib\site-packages\pandas\io\sql.py)源码关于报错检查的定义。即

# for c in uname:
#     if not re.match(basere, c):
#         if not (0x80 < ord(c) < 0xFFFF):
#             raise ValueError("Invalid MySQL identifier '%s'" % uname)

     我的环境是Python5.7.12 + pandas0.18.0,正如源码文件注释中以及SO中所提到,这个报错检查是为了“Filter for unquoted identifiers”,过滤在表名、字段名中使用不符合MySQL要求的标识符,主要就是数字了(我的情况就是字段名使用的是阿拉伯数字形式的“年月日”)。但是按照源码文件注释中的参考文档(http://dev.mysql.com/doc/refman/5.0/en/identifiers.html),这段代码是基于MySQL5.0版本的。我的MySQL版本是5.6,包括新版的5.7及至开发中的8.0,其实表名和(或)字段名包括或者全部数字都是完全支持的。所以,这是pandas库亟待修复的BUG了https://github.com/pydata/pandas/issues/13206。



这篇关于【Python】“pandas”库“to_sql”报错“Invalid MySQL identifier”处理记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760357

相关文章

SQL 外键Foreign Key全解析

《SQL外键ForeignKey全解析》外键是数据库表中的一列(或一组列),用于​​建立两个表之间的关联关系​​,外键的值必须匹配另一个表的主键(PrimaryKey)或唯一约束(UniqueCo... 目录1. 什么是外键?​​ ​​​​2. 外键的语法​​​​3. 外键的约束行为​​​​4. 多列外键​

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写

详解如何在SpringBoot控制器中处理用户数据

《详解如何在SpringBoot控制器中处理用户数据》在SpringBoot应用开发中,控制器(Controller)扮演着至关重要的角色,它负责接收用户请求、处理数据并返回响应,本文将深入浅出地讲解... 目录一、获取请求参数1.1 获取查询参数1.2 获取路径参数二、处理表单提交2.1 处理表单数据三、

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

MySQL中SQL的执行顺序详解

《MySQL中SQL的执行顺序详解》:本文主要介绍MySQL中SQL的执行顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql中SQL的执行顺序SQL执行顺序MySQL的执行顺序SELECT语句定义SELECT语句执行顺序总结MySQL中SQL的执行顺序

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索