当前位置: 首页 > news >正文

解决pandas写入excel时的ValueError: All strings must be XML compatible报错

报错内容:
ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

报错背景

用pands批量写入excel文件,发生编码报错。检索了很多方案,都不能解决。

导致报错的原因是存在违法字符,不符合 XML 的解析规则。pandas写入应该是调用了xml的解析方法,所以这里也要符合xml的字符规则。

很多方法都是针对自己任务中遇到的特定违法字符进行的替换操作,不具备一般性。所以这里列出了一个最终解法——逐个字符的判断是否符合xml编译规则,只保留符合规则的编码。

最终代码

def valid_xml_char_ordinal(c):codepoint = ord(c)# conditions ordered by presumed frequencyreturn (0x20 <= codepoint <= 0xD7FF orcodepoint in (0x9, 0xA, 0xD) or0xE000 <= codepoint <= 0xFFFD or0x10000 <= codepoint <= 0x10FFFF)def wash_data(text):cleaned_string = ''.join(c for c in text if valid_xml_char_ordinal(c))return cleaned_stringtext = "xxx"
text = wash_data(text)  # 完成清洗

参考

[1] 在python中过滤掉某些字节_python_Mangs-Python

http://www.lryc.cn/news/292820.html

相关文章:

  • 华为手表应用APP开发:watch系列 GT系列 1.配置调试设备
  • Vue(十九):ElementUI 扩展实现树形结构表格组件的勾父选子、半勾选、过滤出半勾选节点功能
  • SpringBoot RestTemplate 设置挡板
  • arcgis javascript api4.x加载非公开或者私有的arcgis地图服务
  • 2024年美赛数学建模A题思路分析 - 资源可用性和性别比例
  • UDP和TCP的区别和联系
  • delete、truncate和drop区别
  • 946. 验证栈序列
  • Linux系统管理和Shell脚本笔试题
  • docker 搭建 Seafile 集成 onlyoffice
  • 【Spring Boot 3】【JPA】嵌入式对象
  • STM32控制DS18B20温度传感器获取温度
  • 服务器常遇的响应状态码
  • 云原生业务全流程DevOps配置预研与实践
  • SouthLeetCode-打卡24年01月第5周
  • 【国产MCU】-CH32V307-通用DMA控制器及使用
  • mysql8.0-cnf文件
  • MySQL进阶45讲【11】怎么更好地给字符串字段加索引?
  • ​(三)hadoop之hive的搭建1
  • Spring事务传播机制
  • 智能分析网关V4+EasyCVR视频融合平台——高速公路交通情况的实时监控和分析一体化方案
  • Vue3.0(一):Vue的引入-options api-模板语法
  • API网关-Apisix多节点搭建(RPM包方式)
  • HAL库配置片内FLASH读写
  • 日志记录——单片机可执行文件合并
  • 2024数模美赛C题F题完整代码结果展示
  • H5调用安卓原生相机API案例
  • Java面试——计网篇
  • 函数式接口当参数使用
  • 全面详解Maven的配置文件settings.xml