更多课程 选择中心


Python培训

400-111-8989

Python的编码解码问题

  • 发布:飞舞
  • 来源:初见数据之美
  • 时间:2017-09-27 16:50

这两天进行网抓,被python的编解码问题搞得一脸懵比,虽然网上能够搜到各种各样的解决方案,不乏从原理到实践的精品,然而似乎却并不奏效,经自行摸索,本文特针对编解码问题,作以下最简单却最实用的总结:

写入和读取文件时,编解码方式一定要成对。

比如,如果使用json.dump写入文本,那么读取时,请务必用json.load,否则即使后期实用各种方法折腾,依旧很可能无法正确解码json格式文本。

同样,如果使用普通方法写入文本时,指定了编码方式,那么在读取文件时,务必显式指定同样的编码方式:

#写入文本时指定utf-8编码

with open('html_file','a',encoding='utf-8') as f:

f.write(response.text)

#读取时仍旧显式指定utf-8编码

with open(file_name,'r',encoding='utf-8') as f:

html=f.read()

虽然python3号称默认编码为utf-8,实际上如果不显示指定,并不好使,比如以上以普通方式写入文本时,如果不显式指定utf-8,那么写入的文本可为乱码。相应的,如果写入时指定utf-8格式,读取时未显式指定,python显然并没有默认utf-8编码,而是根据文件内容进行猜测,如果检测到中文,它很可能用'gbk'之类的编码进行编解码并报错。

此外,使用中发现,若先后将若干个html网页内容以json格式保存在同一个txt文件中,json会出现解码错误,分别保存的时候则无错误,由此倒可以推断json在进行文本解析的时候对有些特殊字符会出现误析,与其后期再对json格式的文件进行容错处理,新手不如老老实实使用普通的读写方式,反而不容易出错。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python自定义函数的参数解读
下一篇:Python在人工智能/数据分析/金融中如何应用?

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省