Python读取数据编码排错

docker run hello-world 原理与排错:Docker 环境验证黄金标准 Docker 容器技术的核心在于端到端的运行时闭环验证,而 docker run hello-world 正是这一闭环的最小可行诊断单元。它不仅检验 CLI 与 daemon 的通信能力,更串联镜像拉取、存储驱动、命名空间隔离、runc 运行时等底层机制,构成完整的容器生命周期验证链路。其轻量(2.4KB)、确定性(硬编码输出)、可观察性(逐阶段日志)三大特性,使其成为 Linux 权限配置、网络代理设置、镜像仓库连通性等高频问题的首道筛查工具。在 DevOps 实践与企业级容器部署中,该命令实质承担着环境 阅读详情

在Python开发中,当需要读取某些数据文件或者获取某些数据时,很有可能会遇到因为编码不匹配而报错的情况。这类问题其实非常常见,主要原因,还是因为没有选择正确的编码来识别所导致的。

为了很好的说明并解决这个问题,我以一个实际场景为例。当前,有一个csv格式的excel数据文件,为了确保数据文件的编码与我们假设的一致,我手动打开将此csv文件并明确以UTF-8编码另存为再次保存了一遍,默认情况下这个文件理应当以UTF-8的编码格式保存了。

下面简单的使用pandas库并以显式地方式设置以UTF-8的编码格式去读取csv文件,然后把最终数据赋值给data1并输出看看结果。

import pandas as pd

data1 = pd.read_csv('/Users/Anders/Downloads/dataset.csv', engine='python', encoding='UTF-8')

data1

运气好的是,并没有出现编码报错问题,但是仔细查看,发现输出的信息明显与我们在excel中查看的有误,因为行标题丢失了,而且格式也有部分错位挤压。
在这里插入图片描述
产生这个问题的原因其实很简单,就是我们没有设置完全匹配的编码导致Python读不懂,只能返回错误的数据或者甚至是报错信息。

解决的办法也十分简单,自然是想办法去查看文件真正的编码到底是什么,然后再以正确的编码格式去读取csv文件。那么对于如何获取文件的真正编码格式,我们需要用到一个第三方库名为chardet,可以用它来检测编码。在安装完该库后,我们可以很简单的用它来做各种编码检测,举个例子如下:

import chardet
data = '这是一个例子'.encode('GBK')
chardet.detect(data)

{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}

这里的encoding代表了检测的编码类型,confidence代表了正确的识别率,language代表了识别的语言。但是我们看到这里显示的是编码是GB2312,为什么不是之前我们设置的GBK呢?

原因是这样的,对于中文字符的问题,实际有如下已知入下的排序,按照编码方式包含的字符数的多少从少到多进行排序。假设我们的文件是以GB2312编码的,那我们可以试图用GBK或者更高的GB18030来打开。

GB2312 < GBK < GB18030

这就是为什么之前我们设置了GBK而实际显示了GB2312,后者是前者的一个兼容子集关系。

现在,知道了如何获取数据编码的格式后,我们就编写如下方法检查要打开的文件是什么编码,虽然你保存csv的时候保存了指定的编码,比如保存的时候是【逗号分隔符csv utf-8】类型,但是可能实际的编码是UTF-8 GIS编码,那么打开也是有问题的。

import chardet

# 获取文件编码类型
def get_encoding(file):
    # 二进制方式读取,获取字节数据,检测类型
    with open(file, 'rb') as f:
        return chardet.detect(f.read())['encoding']

get_encoding('/Users/Anders/Downloads/dataset.csv')

最后实际发现输出的编码结果是UTF-8-SIG, 这也就是为什么我们使用UTF-8没有获得正常的输出信息的原因。现在我们把实际编码改为UTF-8-SIG再次看下。

import pandas as pd

data1 = pd.read_csv('/Users/Anders/Downloads/dataset.csv', engine='python', encoding='UTF-8')

data1

这次输出了正常的信息,这就验证了我们之前的想法是正确的。
在这里插入图片描述
所以,当我们遇到读取数据文件编码问题的时候,就可以考虑以这样的方式去解决问题。

AI辅助Python编程入门:从环境搭建到实战项目全攻略 Python作为一门简洁高效的编程语言,凭借其清晰的语法结构和丰富的生态系统,在数据分析、人工智能、Web开发等领域广泛应用。其核心原理在于解释型执行和动态类型系统,使得代码编写灵活且易于上手。对于初学者而言,掌握Python不仅能提升自动化处理能力,更是进入AI和数据分析领域的重要基石。在实际应用场景中,从环境配置、基础语法到项目开发,常常会遇到各种挑战。如今,借助AI辅助编程工具,学习过程可以变得更加高效和直观。例如,通过Cursor或GitHub Copilot等工具,开发者能快速理解代码逻辑、生成功 阅读详情

相关推荐

Python大文件读取避坑指南:从readlines内存爆炸到mmap高效迭代

在Python中处理大文件时,核心挑战在于平衡内存占用、I/O性能与资源安全性。`readlines()`会将整个文件加载进内存,引发OOM;而`for line in f:`依托底层缓冲区(默认8KB)实现流式迭代,内存恒定且高效。理解缓冲机制、正确使用`with`上下文管理器防止句柄泄漏、合理设置`buffering`参数,是保障稳定性的基础。当文件超大或需随机访问时,`mmap`提供内存映射能力,支持惰性行迭代与断点续传。本文覆盖真实生产场景中的编码错误、系统缓冲区争抢、并发瓶颈等高频问题,为日志分析

weixin_30666401的博客 322

pandas read_excel()方法更新了,encoding参数没了

pandas read_excel()方法更新了,encoding参数没了

本博客暂停使用 1万+

Python地理数据处理:pyshp库读写Shapefile全解析

地理信息系统(GIS)中的矢量数据是描述地理要素空间位置与属性的核心载体,其本质是通过坐标序列定义点、线、面等几何形状,并关联属性表进行数据管理。Shapefile作为GIS领域长期的事实标准数据格式,因其结构简单、兼容性广,成为跨平台数据交换与处理的基石。在自动化数据处理与分析的工程实践中,通过编程方式高效读写Shapefile能极大提升工作流效率,尤其适用于**数据清洗**、批量转换和集成分析等场景。Python生态中的pyshp库,作为一个轻量级纯Python工具,完美封装了Shapefile的**文

weixin_34248487的博客 311

解决TypeError: ‘encoding’ is an invalid keyword argument for this function

​​错误通常发生在文件读写操作中,原因是​​open()​​函数不支持​​encoding​​参数。解决这个错误的方法包括检查Python版本、使用正确的函数、检查函数参数以及检查文件打开模式。通过正确地使用​​open()​​函数,并避免错误使用​​encoding​​参数,我们可以顺利地进行文件读写操作。希望本文对你能够帮助你解决​​错误。如果你还有其他疑问,请随时提问。

牛肉胡辣汤 1万+

漫步时尚广场Web基础实训项目:解压、运行与排错全攻略

前端开发中,静态网站是入门最基础的项目形态,而Web基础实训常以“漫步时尚广场”等主题站点为载体,帮助学习者掌握HTML、CSS与JavaScript的协同工作方式。理解项目目录结构是第一步,index.html作为入口文件,通过相对路径引用样式和脚本,配合本地服务器(如Live Server或Python http.server)运行,可有效避免file://协议带来的跨域限制。这种工程化思维不仅能提升排错效率,也为后续动态交互开发奠定基础。本文以“漫步时尚广场”zip包为例,梳理从解压、环境准备到核心代

weixin_29009881的博客 319

AI Agent Harness Engineering 监控与日志系统搭建

在生成式AI(Generative AI)与大语言模型(LLM)普及的今天,AI Agent(自主智能代理)已经成为了继「LLM API调用」「单轮/多轮对话」之后的第三代AI应用范式——Agent能够自主感知环境、制定多步决策、调用外部工具(Web搜索、数据库、RAG检索、企业系统API等)、执行复杂任务并优化自身策略。然而,随着Agent应用从Demo原型快速落地到企业生产环境,一系列与工程化落地强绑定的可观测性(Observability)问题正在成为Agent项目成功上线、稳定运行的最大瓶颈。

AI开发架构师 183

Pandas常见错误解决办法

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa1 in position 3: invalid start byte错误解决办法 这类错误的原因是编码造成的,通常情况下都是utf-8编码,这需要变换一下,改成encoding="ISO-8859-1"即可: file = pd.read_csv("/input/Aliases.cs...

rs_90的博客 1227

emqx Java 订阅以及发送 结合若依框架

emqx Java 订阅以及发送 结合若依框架

Spo的博客 1612

pandas的to_csv函数内设置encoding='utf8'后文件打开是乱码的问题

将encoding=‘utf8’改为encoding=‘utf_8_sig’ eg: XXX.to_csv(r’票房1111.csv’,encoding='utf_8_sig')

Gfqwy2021 1822

Delta并联机构运动学正逆解:从理论建模到Matlab实战

本文深入解析了Delta并联机构运动学正逆解的核心原理与实战方法。通过几何建模,清晰阐述了其“逆解简单、正解复杂”的特性,并详细推导了基于一元二次方程的逆解解析算法与采用牛顿-拉弗森迭代法的正解数值算法。文章结合完整的Matlab代码实例,从符号推导到数值求解,提供了从理论到实践的完整实现路径,助力机器人开发者掌握Delta并联机构的运动学分析。

weixin_29096377的博客 432

卸载重装Ubuntu22.04双系统

先说一下写此篇文章的背景吧,我在Windows下配置了三个cornerNet深度学习环境分别是cuda10.3(显卡版本太高不支持),cuda11.3(配置后偶然看到一篇说这个版本win下只能用CPU跑),最后是cuda11.1终究还是没能跑通代码,因为它的代码是在Liunx系统写的,就想着装个Ubuntu试试看,在网上看说一般软件不要装太高版本,我就下载了470版的显卡驱动,跟着步骤升级了系统内核,结果第二天开机Ubuntu就崩了,开机黑屏左上角只有一道横杠显示,只能按ctrl+shift+f5进入命令窗

编程小白的博客 8104

python代码库-python 编码库

广告关闭2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。目前我们公司的自动化,大部分是以 python 语言为主,但是经常发现,不同人的编写风格都不尽相同,所以我就给自己制定了一套规则,至少从我自己做起,保持自己的编码规范一致性。 下面所有的规范都是以实用为主,请按需取用。 1. 类名使用驼峰式命名法,首字母要大写,比如: cla...

weixin_37988176的博客 2693

【Burp入门第二篇】Chrome配置BurpSuite代理教程

1、配置Burp代理为127.0.0.1:80802、扩展商店添加插件switchyomega,修改服务器和端口为下图:3、打开代理,选择刚才添加的代理

等风来 8368

第十七章 调试与排错:读懂 Traceback 的方法论

科研Python调试的核心在于快速定位和解决错误。本文提出了一套通用Traceback阅读方法论,强调错误不是惩罚而是线索。关键步骤包括:识别错误类型,定位代码行,检查数据类型和结构,回溯数据变化。常见错误如KeyError、TypeError、ValueError多源于数据问题而非代码逻辑。科研调试应避免“试到不报错”,而是确保代码行为与预期一致。通过系统化调试流程,可显著提高排错效率,减少时间浪费。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1503

flash均衡磨损--实时保存设备数据

【代码】flash均衡磨损--实时保存设备数据。

Car12 480

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 994

BreezySLAM常见问题解决:从安装到调试的完整排错手册

🚀 **BreezySLAM** 是一款简单高效的**同时定位与建图(SLAM)** 开源库,专为激光雷达(Lidar)应用设计。无论你是机器人爱好者、自动驾驶研究者,还是嵌入式开发者,在使用BreezySLAM过程中都可能遇到各种技术难题。本手册将为你提供从安装到调试的完整排错指南,帮助你快速解决常见问题! ## 📦 安装与编译问题排查 ### 1. Python版本兼容性问题 **症

gitblog_01108的博客 600

将Dify平台开发的工作流集成到Open WebUI中

将Dify开发的工作流集成到Open WebUI是一个能够显著增强AI应用交互能力和业务逻辑深度的有效途径。其核心在于通过API建立两者间的通信桥梁,并确保API在格式、协议和行为上的一致性,特别是向OpenAI Chat API规范看齐。最简单直接的路径是利用Dify的“对话型”或“Agent型”应用,这类应用的API设计更倾向于满足Open WebUI这类聊天前端的期望。然而,面对复杂的现实场景,直接的完美兼容并非总是唾手可得。

形上得其象,形下合于数;阴阳自济,玄理自明。 2030

Python stdin读取全解析:从input到sys.stdin的4种方式

stdin(标准输入)是Python与外部数据交互的基础I/O通道,本质是遵循文件协议的系统级数据流入接口。其核心原理在于操作系统为进程预置的文件描述符0,行为受运行上下文(终端/管道/重定向)动态支配。技术价值体现在轻量交互、流式处理和Unix工具链集成能力上。典型应用场景包括命令行工具开发、日志实时分析、CI/CD脚本自动化及Kubernetes Init Container配置注入。本文深入剖析input()、sys.stdin.read()、sys.stdin.readline()和sys.stdi

weixin_30271335的博客 573

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python基础入门:零基础搞定自动化办公的实战路径

Python基础是一门面向问题解决的实用技能,其核心原理在于将重复性人工操作转化为可复现的机器指令。它不强调语法背诵,而重在逻辑思维训练与可执行技能落地,技术价值体现在显著提升办公效率、降低人为错误、释放人力投入高价值任务。典型应用场景包括Excel数据清洗与分析、批量文件重命名与归档、会议纪要结构化提取、自动周报生成等日常办公痛点。尤其适合行政、财务、HR、销售等岗位中需长期处理多源异构数据的零基础从业者——无需编程背景,只要具备‘把模糊需求拆解为明确步骤’的意愿,就能快速上手并产出真实价值。

weixin_30861459的博客 378

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python入门指南:从零搭建环境到核心应用场景解析

编程语言作为人机交互的桥梁,其核心在于将人类逻辑转化为计算机可执行的指令。Python作为一门高级编程语言,以其简洁的语法和动态类型系统,显著降低了编程的入门门槛,实现了代码的高可读性。这种设计哲学使其在工程实践中展现出强大的通用性和灵活性,成为解决实际问题的有效工具。在数据分析领域,Python通过Pandas、NumPy等库高效处理数据,并结合Matplotlib实现可视化,助力从数据中提取洞察。在自动化脚本和网络爬虫方面,Python能轻松应对文件批量处理、系统监控及信息抓取等重复性任务,极大提升工作

weixin_34326429的博客 476

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python文件操作全解析:从基础读写到JSON/CSV实战

文件操作是编程语言与外部世界交互的核心机制,它定义了程序如何读取和写入持久化存储中的数据。其基本原理遵循“打开-操作-关闭”的三部曲,通过指定读写模式来控制数据流向。掌握文件操作的技术价值在于,它使程序能够处理真实世界的数据源,如日志分析、数据持久化和配置文件管理。在实际应用场景中,开发者常需处理结构化数据格式,例如JSON和CSV文件,这些格式广泛用于数据交换和存储。本文聚焦Python中的文件处理,深入探讨open()函数、路径管理、编码问题及大文件处理策略,并特别针对JSON序列化与CSV读写提供了工

weixin_34087307的博客 419

Python入门:Python3 StringIO模块全面学习教程

本文详细介绍了 Python 中 StringIO 模块的使用,该模块可在内存中像操作文件一样处理字符串,能避免磁盘 I/O 以提升效率,还便于临时数据处理与测试调试。文章先阐述其核心优势,接着讲解基础使用步骤,包括从 io 模块导入 StringIO、创建对象(可带初始字符串)、用 write () 写入数据,以及通过 getvalue ()、read () 等方法读取数据,同时说明 seek () 移动指针、tell () 查看指针位置和 close () 关闭对象的操作。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7963

Python编程入门实战:从零构建天气查询工具,掌握核心语法与项目开发

编程语言的核心价值在于解决实际问题,Python以其简洁语法和丰富的生态成为初学者首选。理解编程思维比记忆语法更重要,这涉及变量、函数、流程控制等基础概念,它们共同构成程序逻辑的基石。掌握这些原理后,便能通过模块化设计和第三方库应用,高效构建实用工具。例如,利用requests库进行网络请求,结合异常处理机制确保程序健壮性,可快速开发出如天气查询命令行工具等应用。本文聚焦Python学习路径,通过环境搭建、核心语法精讲和项目实战,帮助读者避开常见陷阱,建立从理论到实践的完整知识体系。

weixin_30824599的博客 361

快速验证数据可视化方案:用快马平台一分钟生成python图表原型

以前每次要测试一个新的数据可视化想法,我都得先确认本地是否安装了Python,然后通过pip逐个安装matplotlib、pandas等库。更糟的是,不同项目可能依赖不同版本的库,经常出现版本冲突。在数据分析工作中,最让人头疼的往往不是算法本身,而是搭建开发环境这个前置步骤。对于需要持续展示的数据看板项目,平台的一键部署功能特别实用。不仅省去了环境配置的麻烦,内置的代码补全和错误检查也让开发过程更加流畅。对于经常需要做数据分析和可视化的同学来说,这确实是个提升效率的神器。经过这段时间的使用,我发现。

CrystalwaveEagle34的博客 314
上一篇: 从零开始学PowerShell(10) PowerShell中的子表达式
下一篇: Python的魔术方法(Magic Method)
itanders
博客等级 码龄19年 178粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值