首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python编码元组列表?

用python编码元组列表?
EN

Stack Overflow用户
提问于 2014-12-31 08:47:18
回答 2查看 10.6K关注 0票数 1

我从一个目录中读取了一个utf-8文本文件,然后将读取的文本插入到一个列表中,我得到了一些如下的元组:

代码语言:javascript
复制
l = [('mucho','fácil'),...,('yo','hola')]

当我在控制台上打印它时,我有以下内容:

代码语言:javascript
复制
print l

('mucho','f\xc3\xa1cil'),...,('yo','hola')

因此,我尝试了以下方法:

代码语言:javascript
复制
fixing_l = [x.encode('utf-8') for x in l]

当我尝试打印它时,我得到了这个异常:

代码语言:javascript
复制
AttributeError: 'tuple' object has no attribute 'encode' 

如何对字符串进行编码和修复,并获得如下内容:

代码语言:javascript
复制
('mucho','fácil'),...,('yo','hola')
EN

回答 2

Stack Overflow用户

发布于 2014-12-31 08:52:11

我想你的意思是解码

代码语言:javascript
复制
l = [('mucho','f\xc3\xa1cil'),...,('yo','hola')]
decoded = [[word.decode("utf8") for word in sets] for sets in l]


for words in decoded:
    print u" ".join(words)

print 'f\xc3\xa1cil'.decode("utf8")

如果您打印它,您应该会看到正确的字符串。

由于最初有一个普通的字节字符串,因此需要对其执行decode操作,这将返回对象的unicode表示形式……在上面的例子中,u"\xe1"实际上只是<utf8 bytestring>"\xc3\xa1",而á又是所有的case

票数 5
EN

Stack Overflow用户

发布于 2016-09-19 23:17:28

在python3中,您可以使用:

代码语言:javascript
复制
res = [tuple(map(lambda x: x.encode(encoding), tup)) for tup in list_tuples]

示例:

代码语言:javascript
复制
list_tuples = [('mucho','fácil'), ('\u2019', 't')]
res = [tuple(map(lambda x: x.encode('utf-8'), tup)) for tup in list_tuples]

结果:

代码语言:javascript
复制
[(b'mucho', b'f\xc3\xa1cil'), (b'\xe2\x80\x99', b't')]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27714750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档