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

山西做网站的公司哪个好2021年近期舆情热点话题

山西做网站的公司哪个好,2021年近期舆情热点话题,wordpress国内工作室主题,网站建设velpai前言 我们在使用python的过程中,经常需要它完成一些数据处理的工作,其中尤以json/csv文件为常见。今天,博主针对UnicodeDecodeError异常进行试验,因为这个是新手最容易犯错的地方。 Q:如何应对 UnicodeDecodeError 读…

前言

我们在使用python的过程中,经常需要它完成一些数据处理的工作,其中尤以json/csv文件为常见。今天,博主针对UnicodeDecodeError异常进行试验,因为这个是新手最容易犯错的地方。

在这里插入图片描述

Q:如何应对 UnicodeDecodeError

读取 .csv 或 .json 文件时,我们可能会遇到诸如: 'gbk' codec can't decode byte xx: illegal multibyte sequence 或 incomplete multibyte sequence。通过直觉判断是字符编码的问题,那么又该如何解决?

一、csv文件

1. 现场还原

我们读csv文件时,有两种方式:

1.1 使用pathlib
from pathlib import Pathpath = Path("123.csv")
# 读取所有行
rows = path.read_text().splitlines()
print(rows)
1.2 使用csv库
import csvf = open("123.csv")
reader = csv.reader(f, delimiter=",")
# 第一种方法:遍历reader
rows = [row for row in reader]
print(rows)# 第二种方法:遍历reader
rows = enumerate(reader)
for index, row in rows:# 按索引返回每行,默认是list,需通过row[0]完成数据获取,tt为每列分隔符print(index, row[0].split("tt"))

上述两种方式均支持对csv文件进行数据解析。但是问题在于未指定字符编码,所以两种方式均会提示该异常,如下图所示:

在这里插入图片描述

2. 正确方式
2.1 使用pathlib
from pathlib import Pathpath = Path("123.csv")
# 读取所有行,并且指定字符编码
rows = path.read_text(encoding="utf-8").splitlines()
print(rows)

需要注意的是,我们在使用pathlib时,在Path()中也可以指定encoding="utf-8",但是很遗憾会获得一个warning并且并不会产生期望的结果:
DeprecationWarning: support for supplying keyword arguments to pathlib.PurePath is deprecated and scheduled for removal in Python 3.14

形如:

# 定义字符编码无效,直接放弃path = Path("123.csv", encoding="utf-8")
2.2 使用csv标准库
import csvf = open("123.csv", encoding="utf-8")
reader = csv.reader(f, delimiter=",")
# # 第一种方法:遍历reader
rows = [row for row in reader]
print(rows)# 第二种方法:遍历reader
rows = enumerate(reader)
for index, row in rows:# 按索引返回每行,默认是list,需通过row[0]完成数据获取,tt为分隔符print(index, row[0].split("tt"))

通过指定encoding实现处理时的字符编码与文件保持一致,可以避免不必要的犯错。总之一句话,“养成好习惯,学习美又欢”

二、json文件

我们在读取json文件时,也会遇到该问题,这里博主直接贴正确的写法:

import json# 同csv一样,指定encoding
f = open("data.json", encoding="utf-8")
# 将json字符串转为json对象
data_obj = json.loads(f.read())
# 根据key, 返回value
print(f"credit_code is: {data_obj["credit_code"]}")# 将json对象转为字符串
data_str = json.dumps(data_obj, indent=4)
print(f"type is: {type(data_str)}")

运行结果如下:
在这里插入图片描述

结语

针对UnicodeDecodeError,博主提供了错误和正确的示例,相信能够从中获取一些帮助。
在这里插入图片描述

http://www.khdw.cn/news/35431.html

相关文章:

  • wordpress 用户水印重庆seo
  • 给别人做网站多少钱vue seo 优化方案
  • 江苏省交通建设监理协会网站百度收录情况查询
  • 网站301定向怎样在百度上发布作品
  • 百姓网网站开发的意义软文广告经典案例
  • 花店网站建设方案关键词优化师
  • 永久网站域名广州营销优化
  • 有了域名后怎样做网站网页设计流程步骤
  • 中山智能设备网站建设网络seo是什么工作
  • 技术支持 桂林网站建设长沙网络推广只选智投未来
  • 网站建设中扒站为什么是违法的潍坊网站外包
  • 画廊网站建设站长工具忘忧草社区
  • 爱凡客杭州百度百家号seo优化排名
  • 广东微信网站制作报价表汕头seo按天付费
  • 牛天下网站建设企业培训十大热门课程
  • 西安网站建设中企建站网站模板建站公司
  • 网站怎么做首页比较好西安网站建设网络推广
  • 互联网网站定位可以免费打开网站的软件下载
  • 斗图在线制作生成器陕西seo关键词优化外包
  • 网站建站思路百度应用商店下载安装
  • 做网站硬件广州百度seo排名优化
  • 百度网站标题优化百度搜索指数和资讯指数
  • 徐州做网站哪家好站长工具ping检测
  • 抓取式网站建设软文500字范文
  • 备案号 不放在网站首页免费seo网站自动推广软件
  • 一个网站只有一个核心关键词百度收录提交网址
  • 网站实现留言功能吗seo方法
  • 临漳网站制作网站开发建设步骤
  • 最简单网站开发软件有哪些b2b外链代发
  • 太平洋电脑配置报价官网北京seo代理计费