解码编码字符串列表

2024-05-29 00:08:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个发布数据集,从xml文件中提取数据后,我得到了一个此类列表:

['21-10-2013', ['título do artigo'],['álvaro', 'joão', 'márcio'],['teste', 'operação','manobras']]

如你所见,这些单词是葡萄牙语。为了转换成unicode,我尝试了Kumar McMillan的代码,我进入了farmdev.com/talks/unicode/. 代码如下:

^{pr2}$

我试过用一个简单的字符串编写代码: ab=“trabalhar com a imaginaço”

输出:

>>> cd=to_unicode_or_bust(ab)
u'trabalhar com a imagina\xe7\xe3o'

如果我发出print命令:

>>> print cd
trabalhar com a imaginação

好吧,看来没问题。但是我怎样才能申请这个名单呢? 天真的尝试:

>>> lista2 = to_unicode_or_bust(lista1)
>>> print lista2
['21-10-2013', ['t\xc3\xadtulo do artigo'], ['\xc3\xa1lvaro', 'jo\xc3\xa3o', 'm\xc3\xa1rcio'], ['teste', 'opera\xc3\xa7\xc3\xa3o', 'manobras']]

也许这是一个新手的问题,我知道,但我该怎么做才能在列表2中找到正确的葡萄牙语字符?在


Tags: 数据代码com列表unicodeoperadoprint
2条回答

您拥有的函数很好,但它一次只能处理一个字符串—如果它传递了非unicode字符串以外的其他内容,它只返回它。您将传递给它一个list,它将原封不动地返回给您。在

这个递归函数应该遍历每一位,并用转换后的字符串重新组合它。在

def convert_all(all, convert=to_unicode_or_bust):
    if isinstance(all, tuple):
        return tuple(convert_all(piece, convert) for piece in all)
    elif isinstance(all, list):
        return [convert_all(piece, convert) for piece in all]
    return convert(all)

请注意,当您打印list时,列表中的字符串将具有以\x \u 格式显示的Unicode字符,但单个字符串将正确打印。在

如果字符串本身是字符串,则可以使用以下语法:

mystring = u'سلام'

如果没有u'',python忽略unicode基。在

但是您应该使用print命令:

^{pr2}$

您的变量:

mystring = unicode(myvar)

相关问题 更多 >

    热门问题