已解决python使用pymysql向mysql数据库插入数据报错pymysql.err.DataError: (1366, ‘‘)

news/2025/3/14 1:08:53/

已解决,在python代码是使用pymysql向mysql数据库插入数据时报错pymysql.err.DataError: (1366, '')


问题描述

 我从某个网页上抓取并解析了一段html代码,然后将html代码转为utf-8格式,之后将html代码作为数据表的一个属性存入mysql数据库中:

selector = etree.HTML(content_html)
content = selector.xpath(news['config']['content'])
#找到html中某个节点的html
if content:content_html = etree.tostring(content[0], encoding='utf-8').decode('utf-8')content_html = str(content_html,encoding='utf-8')# 保存数据到数据库sql = "insert into school_news(title,url,content_html,pub_time,school_name,column_name) values(%s,%s,%s,%s,%s,%s)"params = (title, news['url'], content_html, article_time, news['config']['name'], news['config']['column'])print(params)cursor = db_conn.cursor()cursor.execute(sql, params)db_conn.commit()cursor.close()

 执行代码之后,报 cursor.execute(sql, params)这一行出现错误,也就是向数据库中插入数据报错,报错日志如下:

pymysql.err.DataError: (1366, '')

我把sql插入数据放到数据库中执行也是同样的错误,如下图:

 

这说明程序逻辑应该没有问题,猜测应该是数据或者数据类型、格式等与数据库要求的不一致的问题。


原因分析:

        在某度上搜索 这个错误:pymysql.err.DataError: (1366, ''),发现括号中都是后面带有具体的错误信息,而我的这个错误信息为''.因此都没有解决我的问题。

    于是我只能按照自己的猜测,把数据的类型,长度、数据库的编码方式等一一进行了检查,都没有发现问题。再万般无奈之下,我尝试插入一条简单的数据,发现没有问题,但是插入报错的那条数据就会报错,于是我一个一个字的检查了插入的数据,发现有个字显示异常,把它复制出来看看:

    

         有一个中文字变成了一个口,把这个字复制到某度上,显示是“勇”这个字,但复制回数据库就会变回一个口。

     

        因此,我认为这个字的编码有问题,导致数据库识别不出来,所以,我爸这个字删除,就成功保存成功了,至此问题的原因就找到了。

      对别两个字,是不一样的,上面是不正常的,下面的是正常的:

 


解决方案:

发生该错误的原因是其中有某个数据的编码有问题,导致无法插入数据库,但是我已经对该数据转为utf-8了,在pycharm中能显示为中文,但是与其他字的样子看着不一样。因此,我的解决方法就是将不正常的字替换为正常的字:

同时在保存数据到数据库的代码外层加一个try except捕获异常,如果下次还是报错,向这样的错误数据,我就不要了。

 

 

 

 


http://www.ppmy.cn/news/75185.html

相关文章

第三十八章 梦中接龙

回到地下一层,不忍和尚仍保持着刚才的姿势,面前却多了一套僧袍。 “来,试试。”没等巴哥奔念诵‘阿弥陀佛’四字诀,不忍抢先发出心电。 耐不住好奇,巴哥奔拾起僧衣轻轻一抖。 藕丝般黏稠的褐色连体长睡衣瞬间将她的手掌…

python+django音乐推荐网站vue

为此开发了本音乐推介网站 ,为用户提供一个基于音乐推介网站,同时方便管理员;首页、个人中心、用户管理,类型信息管理、乐器类型管理、歌曲信息管理、戏曲信息管理、MV专区管理、付费音乐管理、订单信息管理、音乐文件管理、论坛管…

Spark基础学习笔记----RDD检查点与共享变量

零、本讲学习目标 了解RDD容错机制理解RDD检查点机制的特点与用处理解共享变量的类别、特点与使用 一、RDD容错机制 当Spark集群中的某一个节点由于宕机导致数据丢失,则可以通过Spark中的RDD进行容错恢复已经丢失的数据。RDD提供了两种故障恢复的方式&#xff0c…

Metal入门学习:绘制渲染三角形

一、编程指南PDF下载链接(中英文档) 1、Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习PDF/Metal 编程指南.pdf 2、Metal着色语言(Metal Shader Language:简称MSL)编程指南PDF链接 https://github.com/dennie-lee/ios_te…

UE5 C++类如何读取Excel配置表?

UE5 插件开发指南 前言0 如何编写读取数据的结构体?1 如何读取数据?1.0 如何获取数据资产的路径?2 如何调用商店子系统来读取数据?前言 虚幻引擎兼容CSV和JSON格式的数据结构,这里的CSV是Excel表格的保存格式,如下图所示: 打开任意Excel表格,点击文件菜单,然后鼠标悬浮到…

实施方法论题库

单选题 1.最终用户培训工作,建议由() 得,培训后最终用户需参加考试,考试不合格者需继续培训 A A关键用户 B金蝶实施顾问 C金蝶项目经理 D项目经理 2.项目范围、进度、成本与质量的第一责任人是 B A实施顾问 B项目经理 C项目总监 D交付总监 …

【学习日记2023.5.20】 之 菜品模块完善

文章目录 3. 功能模块完善之菜品模块3.1 公共字段自动填充3.1.1 问题分析3.1.2 实现思路3.1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 3.1.4 功能测试3.1.5 提交代码 3.2 新增菜品3.2.1 需求分析与设计3.2.2 代码开发3.2.2.1 文件上传实现3.2.2.2 新增菜品实现 3.2.3 功…

【cmake实战十二:cmake问题集锦】LNK1104: 无法打开文件“xxxxxxxxx.lib”

【cmake实战十二:cmake问题集锦】LNK1104: 无法打开文件“xxxxxxxxx.lib” 一、问题1:编译时报错,LNK1104: 无法打开文件“xxxxxxxxx.lib”1、问题分析2、解决方案2.1、方案一:link_directories2.2、方案二:target_lin…