Python 列表内字符编码问题,encode和decode

微电网系列: 位移因数DPF&&功率因数PF&&过激&&欠激 文中对比了位移因数(DPF,仅基波相位)与功率因数(PF,含谐波影响)的差异,指出PF=DPF×DF(畸变因数)。过激/欠激状态对应无功功率控制:过激(容性,电流超前,抬升电压)与欠激(感性,电流滞后,抑制电压)。PCS(如光伏逆变器)需逆向调节电网无功状态,过激时发出容性无功,欠激时吸收感性无功,以维持电压。 阅读详情

在学习python爬虫时遇到个小问题,记录一下:

列表内的元素用循环单个输出的话,是正常的中文显示,而用 append 方法添加到集合再直接输出集合的时候,显示的是下面的Unicode编码格式。

import urllib2
import random
from bs4 import BeautifulSoup
hds=[{'User-Agent':'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'},\
    {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'},\
    {'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0'},\
    {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'},\
    {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'},\
    {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'},\
    {'User-Agent':'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11'},\
    {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36'}]
url='https://www.douban.com/tag'
tags=[]
req=urllib2.Request(url,headers=hds[random.randint(0,len(hds)-1)])
source_code=urllib2.urlopen(req).read()
plain_text=str(source_code)
soup=BeautifulSoup(plain_text)
tag_lists=soup.find('ul',{'class':'topic-list'}).findAll('a')
for tag_list in tag_lists:
    print tag_list.get_text()
    tags.append(tag_list.get_text())
print tags
香港
台湾
北京
上海
日本
韩国
英国
意大利
清迈
巴黎
欧洲
火车
[u'\u9999\u6e2f', u'\u53f0\u6e7e', u'\u5317\u4eac', u'\u4e0a\u6d77', u'\u65e5\u672c', u'\u97e9\u56fd', u'\u82f1\u56fd', u'\u610f\u5927\u5229', u'\u6e05\u8fc8', u'\u5df4\u9ece', u'\u6b27\u6d32', u'\u706b\u8f66']

后来发现字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。


因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码

代码中字符串的默认编码与代码文件本身的编码一致。

如:s='中文'
如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需 要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。

如果字符串是这样定义:s=u'中文'
则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。因此,对于这种情况做编码转换,只需要直接使用encode方法将其转换成指定编码即可。如果一个字符串已经是unicode了,再进行解码则将出错。

以上问题应该是python2的问题,在python3中默认编码格式有调整,解决编码问题

node运行项目-Network: unavailable-没有ip地址 vscode运行vue项目后发现Network: unavailable 是什么情况呢?可能有一下三种情况:1.多个网卡原因:打开网络共享中心,把多余的网络禁用掉,只留一个2.在中配置host及public3.系统环境变量问题。 阅读详情

相关推荐

AI人工智能与TensorFlow的教育科技应用

随着科技的飞速发展,AI人工智能在各个领域都展现出了巨大的潜力,教育领域也不例外。本文章的目的在于深入探讨AI人工智能与TensorFlow在教育科技中的具体应用,包括智能教学系统的开发、学生学习情况的评估与预测等方面。范围涵盖了从基础概念到实际项目应用的各个层面,旨在为教育科技工作者和相关研究者提供全面且深入的技术指导。本文将首先介绍AI人工智能和TensorFlow的核心概念及其联系,让读者对相关技术有基本的了解。接着详细讲解核心算法原理和具体操作步骤,并结合数学模型和公式进行深入分析。

AI智能探索者的博客 1697

python decode函数的用法_python中list怎么使用decode方法设置编码

Python decode() 方法以 encoding 指定的编码格式解码字符串。默认编码为字符串编码。decode()方法语法:str.decode(encoding='UTF-8',errors='strict')参数encoding -- 要使用的编码,如"UTF-8"。errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其...

weixin_39947396的博客 444

AI与Agent赋能下的软件测试变革:面向未来测试工程师的工作方法论

AI Agent 软件测试 测试 software testing test

测试技师的自我修养 1234

python中字符串类型的encode()方法_python 的 encode 、decode、字节串、字符串

一、摆个图DJ DJ DJ Decode、 J 解码首先得知道字符串有哪些编码格式,至于为什么会有这么多的编码格式,以后再了解更新。1、ASCII 占1个字节,只支持英文2、GB2312 占2个字节,支持6700+汉字3、GBK GB2312的升级版,支持21000+汉字,中文2个字节。4、Unicode 2-4字节 已经收录136690个字符5、UTF-8: 使用1、2、3、4个字节表示...

weixin_39915081的博客 898

微信小程序scroll-view,点击menu,滚动到锚点;滚动到锚点,激活menu。

首先看看效果图1、首先是点击菜单,滚动列表,这个实现比较简单。直接使用scroll-view 的 scroll-into-view属性,小程序文档。<view class='container'> <!-- 菜单 --> <view class='menu'> <ul> <!-- scrollList 修改cate --&g...

weixin_39834214的博客 1万+

分辨率太小 / Retina 模糊 / 全屏异常:一篇解决 VMware Fusion + Kali 显示问题(Xfce & GNOME 通用)

本文提供了在Mac(尤其是Retina屏)上运行Kali Linux时常见显示问题的完整解决方案。主要解决三类问题:分辨率太小、Retina屏模糊和全屏异常。核心思路是先安装open-vm-tools-desktop并重启,这是90%问题的根源。然后根据不同问题分别处理:调整DPI/Scale解决字体大小,避免双重缩放导致的模糊,以及通过窗口拉伸和重启解决全屏异常。文章还给出了针对Xfce和GNOME的最佳配置建议,并强调调试完成后应创建快照以便快速恢复。最后提供了速查表,方便用户快速参考关键步骤。

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 874

python 解决爬虫得到诸如\u65e2 unicode码转中文和字符串转json的问题

# 字符串处理 s = html.text.encode('utf-8').decode('unicode_escape') # 如果是json的话,转化为json json1 = json.loads(s, strict=False) 原文: {"hero":{"heroId":"1","name":"\u9ed1\u6697\u4e4b\u5973","alias":"Annie","title":"\u5b89\u59ae","roles":["mage"],"shortBio":"\u65e2.

LY的博客 4万+

跟着Synopsys报告,一步步拆解车规芯片FMEDA计算(含公式与避坑点)

本文详细解析了车规芯片FMEDA计算的全流程,基于Synopsys报告拆解实战指南,涵盖基础失效率建模、安全机制效能评估及安全指标合成等关键步骤。通过公式解析、数据准备清单和避坑点分享,帮助工程师掌握ISO26262标准下的硬件量化分析技术,提升车载系统设计可靠性。

weixin_30460489的博客 195

python中的encode()和decode()函数

对于很多人来说,python的中字符转码是一件很头疼的事情,本来期望结果输出的是中文,结果来一段像这样\xe4\xbd\xa0\xe5\xa5\xbd像是乱码的字符串。由于学python没多久,昨天使用python的时候,就遇到这种问题,现在来深入研究下与之相关的encode()和decode()函数,和如何把如乱码般的字符串转成中文。encode()和decode()都是字符串的函数,可直接查看关

m0_38080253的博客 15万+

Ubuntu 22.04源码编译安装ROS Noetic

Ubuntu 22.04源码编译安装ROS Noetic

Drknown的博客 2万+

FineBI制作数据可视化大屏-数据连接(1)

快速上手大屏可视化,FineBI数据连接配置。

Pangaoyang_的博客 1912

python中encode用法_Python中encode()方法的使用简介

encode() 方法返回字符串的编码版本。默认编码是当前的默认字符串编码。可给予设置不同的错误处理机制。语法以下是encode()方法的语法:str.encode(encoding='UTF-8',errors='strict')参数encoding — 这是所使用的编码。对于所有的编码方案的列表,请访问:标准编码库errors — 这可能是给定一个不同的错误处理机制。默认的错误是“严格”,即编...

weixin_30432831的博客 3296

42、使用mmrotate中k3det进行旋转目标检测,并进行mnn部署和ncnn部署

基本思想:仍然是身份证分割,并进行ncnn和mnn的c++的部署开发

sxj731533730 5710

day07

for循环本质上把集合转换成一个可取值的对象(for循环是不需要索引和key取值的,取值是无序的) 数据类型的相互转换 数字与字符串转换'2','-2','3.2','-3.2'这种字符串可以使用类型()的方式转换成相应类型字符串与列表转换list(str) => str[list] 没有str[list],不能够把列表用这种语法转换为字符串,但是可以使用join通常字符串与元组,字典,...

weixin_30821731的博客 66

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python字符编码使用ascii编码储存_python与字符编码问题

用python2的小伙伴肯定会遇到字符编码的问题。下面对编码问题做个简单的总结,希望对各位有些帮助。故事零:编码的定义我们从“SOS“(国际通用求助信号)开始,它的摩斯密码的编码是:“…---…”,想一下为什么选用S、O、S来作为求救信号?因为它简单,容易辨别且不容易发错呀!那么,字符编码就是:´给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码。例如,我们给字...

weixin_39829574的博客 2753

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python字符编码使用ascii编码_Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode...

Python中文虐我千百遍,我待Python如初恋。本文主要介绍在Python2/3交互模式下,通过对中文、英文的处理输出,理解Python的字符编码与解码问题(以点破面)。前言:字符串的编码一开始是 ascii,只支持英文,由于多种语言的存在,出现万国码 unicode,但 unicode 不兼容 ascii,而且对存储空间造成浪费,所以出现 utf-8 编码,一种针对 unicode 的可变长...

weixin_39977586的博客 916

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

encode()和decode()

Python字符串编码转换 encode()和decode()方法个人理解 在Python中,字符串是一个UTF-8编码的字符序列,用于显示或处理文本。这些字节是“原始”的字节序列。你需要记住的是如果有原始字节,那么必须使用decode()来获取字符串。即字节->字符串 如果你有一个字符串,并想发送它,存储它,共享它,或做一些其他操作,有时Python会抛出一个错误,说它不知道如何“编码”它。在这种情况下,必须使用encode()来获取所需的字节。即字符串->字节 encode()和deco

weixin_44762483的博客 547

python用的什么编码_python与字符编码问题

用python2的小伙伴肯定会遇到字符编码的问题。下面对编码问题做个简单的总结,希望对各位有些帮助。故事零:编码的定义我们从“SOS“(国际通用求助信号)开始,它的摩斯密码的编码是:“…---…”,想一下为什么选用S、O、S来作为求救信号?因为它简单,容易辨别且不容易发错呀!那么,字符编码就是:´给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码。例如,我们给字...

weixin_39850787的博客 207

字符编码在python中的处理与储存_python与字符编码问题

用python2的小伙伴肯定会遇到字符编码的问题。下面对编码问题做个简单的总结,希望对各位有些帮助。故事零:编码的定义我们从“SOS“(国际通用求助信号)开始,它的摩斯密码的编码是:“…---…”,想一下为什么选用S、O、S来作为求救信号?因为它简单,容易辨别且不容易发错呀!那么,字符编码就是:´给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码。例如,我们给字...

weixin_39866867的博客 209

Base64模块、pickle模块、json模块、encode/decode的使用

base64: 将特殊格式字符串或者二进制数据转化为可打印的字符串(只包含字母数字和+ / =),并且能在网络中进行传输。 pickle: 将python数据类型(字符串、字典、列表、函数等等)转化为字符串类型。 可以将两者结合使用,从而对数据进行加密传输。 ...

bocai_xiaodaidai的博客 3087

python编码encode和decode

计算机里面,编码方法有很多种,英文的一般用ascii,而中文有unicode,utf-8,gbk,utf-16等等。 unicode是 utf-8,gbk,utf-16这些的父编码,这些子编码都能转换成unicode编码,然后转化成子编码,例如utf8可以转成unicode,再转gbk,但不能直接从utf8转gbk 所以,python中就有两个方法用来解码(decode)与编码(encode),解...

weixin_34082177的博客 131

python-06-列表

01-字符串相关的操作 print('hello'.index('h')) # 修改大小写 # capitalize 让第一个单词的首字母大写 print('hello world.good morning\nyes'.capitalize()) # upper 全大写 print('hello'.upper()) # HELLO # lower 全小写 print('WoRLd'.lower()) # 面向对象里,我们称之为方法 # title 每个单词的首字母大写 print('goo

老板来片烤面包的博客 891

python json.loads()中文问题-python中文编码&json中文输出问题

python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 unicode 问题。首先简要介绍字符串编码的历史,其次,讲解 python 对于字符串的处理,及编码的检测与转换,最后,介绍 python 爬虫采取的 json 数据存入文件时中文输出的问题。参考书籍:...

weixin_37988176的博客 4754

python3 encode函数参数_Python 3 学习笔记(四)----字符编码、函数与参数

一、字符编码与转码1.在python2默认编码是ASCII, python3里默认是unicode2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间3.在py3中encode,在转码的同时还会把string 变成bytes类型,d...

weixin_33544518的博客 549

python全栈学习记录(九)数据类型总结、深拷贝与浅拷贝、字符编码

不可变类型:当数据内部值变化时,数据的内存地址也必定会发生变化。可变类型:当数据内部值变化时,数据的内存地址不会发生变化。如上图所示有列表x=[10,100],y=10。如果改变列表的值x[1]=10本质只是改变了列表中第1个位置存储的内存地址,而并没有改变列表的内存地址(也就是x中的地址),所以列表是可变类型。而如果改变y的值y=100,本质就是把y中关联的内存地址变成了#3,改变了内存地址,所以数字类型是不可变类型。数据类型可变与不可变有序与无序元素是否可重复数字类型不可变字符串。

m0_45491627的博客 1064

python2与python3编码的问题

[转]http://kuanghy.github.io/2016/10/15/encoding-python2-vs-python3 在 Python 中,不论是 Python2 还是 Python3 中,总体上说,字符都只有两大类: 通用的 Unicode 字符; (unicode 被编码后的)某种编码类型的字符,比如 UTF-8,GBK 等类型的字符。 Python2 中字符的类型: str: 已经编码后的字节序列 unicode: 编码前的文本字符 Python3 中字符的类型: str: 编码过的

可问春风的博客 333
上一篇: Python2 设置系统默认编码
下一篇: Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
say_haha
博客等级 码龄13年 48粉丝 64原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值