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

news2024/11/24 15:19:41

已解决,在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.coloradmin.cn/o/558882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码签名证书,保护应用程序安全性

在现代IT环境中,有大量不同的方式可以用来确保应用程序的安全性。其中一个就是从源头开始,让应用程序开发者能够对他们的代码进行数字签名,从而确保给定应用程序的完整性和真实性。 一直以来,认证机构安理会(CASC&…

2023年必备的10款交互设计软件

交互设计可以帮助明确产品需求和功能、进行用户测试和获取反馈、减少开发成本、促进团队合作,并在展示和推销产品时起到关键作用。通过有效的产品交互设计,可以提高产品的质量、用户体验和市场竞争力。 什么是产品交互设计? 产品交互设计是…

Linux查看磁盘利用率(iostat)

使用iostat命令可以查看磁盘的负载情况。iostat命令可以显示磁盘的I/O统计信息,包括磁盘的读写速度、I/O请求队列长度、CPU利用率等。 参数 Device:磁盘分区的名称。rrqm/s:每秒钟合并的读请求。wrqm/s:每秒钟合并的写请求。r/s…

11-FastDFS文件服务器 和 Nginx

1、什么是FastDFS 1、开源的轻量级分布式文件系统,用于解决大数据量存储和负载均衡等问题。 2、优点: 支持HTTP协议传输文件(结合Nginx); 对文件内容做Hash处理,节约磁盘空间; 支持负载均衡、整体性能较佳。 3、FastDFS的二个角色:跟踪服务器(Tracker)、存储服务器…

StringBuffer与StringBuilder的区别

🏆今日学习目标: 🍀StringBuffer与StringBuilder的区别 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你…

档案馆库房温湿度监控系统简单介绍

智慧档案馆八防一体化监控系统 智慧档案平台/温湿度/空气质量/漏水/视频/门禁/一体化管控平台 HONSOR多维空间可视化智慧档案库房建设一体化平台分享 三维可视化智慧档案馆库房一体化环境安全管控系统平台 1.系统告警要求: (1)告警方式&am…

[PCIE733]基于PCI Express总线架构的2路160MSPS AD采集、12路LVDS图像数据采集卡

板卡概述 PCIE733是一款基于PCI Express总线架构的,实现2路16-bit、160MSPS ADC采集功能、12路LVDS数据采集板卡。该板卡遵循PCI Express 2.0规范,全高半长尺寸,板卡采用Xilinx的28nm高性能FPGA处理器XC7K325T作为主控制器,板卡AD…

【dfs序+线段树】P3178 [HAOI2015]树上操作

这道题,昨天调到一点多都没调出来,眼睛都要瞎了 今天看着题解边看边调出来了,但是还是感觉不是很会 m d,学的第一道关于树的DS就搞成这样 感觉很寄啊 P3178 [HAOI2015]树上操作 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)…

事务、分布式事务以及seata

事务 事务就是用户定义的一系列数据库操作,这些操作可以视为一个完成的逻辑处理工作单元,要么全部执行,要么全部不执行,是不可分割的工作单元。 事务的四个特效ACID Atomic 原子性,原子性是指事务必须是一个原子的操…

手摸手教你Vite+Vue3项目初始化及开源部署到GItee

项目初始化 本片文章主要记录项目的环境,项目搭建。 在开始本次学习中,鉴于你有前端三件套和vue的知识基础。 文档创建于2023年5月20日,大家都去过情人节了~我在肝代码! 环境的搭建 node版本使用18.16.0。 目前(202…

重磅!超星未来发布全新NOVA-ADCU智能驾驶参考方案

近日,超星未来重磅发布基于惊蛰R1芯片面向多场景打造的全新NOVA-ADCU智能驾驶参考方案,并亮相科技成果展。方案覆盖高阶行泊一体、轻量级行泊一体、双目智驾、路侧感知等场景,携手产业链上下游伙伴构建开放共赢的智能驾驶新生态。 以智能驾驶…

一种新的算法模型,填补微生物组纵向研究数据中的缺失值

谷禾健康 微生物组的纵向研究是一种长期跟踪微生物组变化的研究方法。在这类研究中,样本从同一人群或个人中多次采集,通过检测样本中微生物群落丰度的变化(如不同菌群的比例和种类),来了解微生物组随时间的变化趋势和特…

【LeetCode225.用队列实现栈】你足够了解栈和队列吗?

​ 你好,欢迎来到我的博客!作为一名程序员,我经常刷LeetCode题目来提升自己的编程能力。在我的博客里,我会分享一些我自己做过的题目和解题思路,希望能够帮助到大家。今天,我想和大家分享一道挑战性较高的题…

ApplicationRunner使用

本文来说下CommandLineRunner和ApplicationRunner的使用 文章目录 ApplicationRunner使用示例程序结果 CommandLineRunner使用示例程序结果 ApplicationListener触发时机使用实例程序结果注意问题 ApplicationRunner 使用起来很简单,只需要实现CommandLineRunner或者…

手机也可以搭建个人博客?安卓Termux+Hexo搭建属于你自己的博客网站【cpolar实现公网访问】

文章目录 1. 安装 Hexo2. 安装cpolar内网穿透3. 公网远程访问4. 固定公网地址 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并…

领英Linkedin开发客户技巧分享

近期领英也是发布公告说2023年8月9号linkedin将关闭领英职场,我看很多有在用领英的小伙伴在问,这里回复一下,国内职场跟咱们做外贸使用linkedin国际版没啥太大关系,大可放心,要说影响的话肯定是有一些的,以…

数据库提权

数据库提权的前提就是得到数据库的账号密码。在webshell或本地进行提权。 数据库提权分为四步: 1.服务探针,探测出数据库的类型(端口扫描等) 2.信息搜集,就是获取到数据库的账号密码。权限要高。 读取数据库密码的…

SUSE系统修改静态IP

Suse系统使用yast管理配置,默认创建虚拟机,是使用DHCP获取动态IP的,这样非常不利于管理。因此,最好使用静态IP。 当前操作系统: eoisu01:~> uname -a Linux su01 6.3.2-1-default #1 SMP PREEMPT_DYNAMIC Mon May …

【服务器数据恢复】断电导致raid6磁盘扇区损坏的数据恢复案例

服务器数据恢复环境: 某品牌存储,12块SAS硬盘组建RAID6磁盘阵列,划分一个卷,分配给几台Vmware ESXI主机做共享存储。 卷中存放了大量的Windows虚拟机,虚拟机通过模板创建的,系统盘大小一致,数据…

苹果营收及增速分析,2022年营收达2055亿美元,增速为7%

众所周知,2007年1月,被乔布斯称为“苹果将彻底改变手机”的第一代iPhone正式发布,并于当年6月底上市销售。上市后,其受欢迎程度令人咋舌,销量一骑绝尘。短短5年内,其市场份额也由最初的3%升至18%&#xff0…