【问题标题】:How to decode strings saved in utf-8 format如何解码以 utf-8 格式保存的字符串
【发布时间】:2014-04-08 13:55:05
【问题描述】:

我正在尝试解码下面列表中的字符串。它们都以 utf-8 格式编码。

_strs=['."\n\nThe vicar\'',':--\n\nIn the', 'cathedral']

预期输出:

['.The vicar', ':--In the', 'cathedral']

我的尝试

>>> for x in _str:
    x.decode('string_escape')
    print x


'."\n\nThe vicar\''
."

The vicar'
':--\n\nIn the'
:--

In the
'cathedral'
cathedral
>>> print [x.decode('string_escape') for x in _str]
['."\n\nThe vicar\'', ':--\n\nIn the', 'cathedral']

两次尝试都失败了。 有什么想法吗?

【问题讨论】:

    标签: python string utf-8


    【解决方案1】:

    所以您想从列表中删除一些字符,可以使用简单的regex 来完成,如下所示:

    import re
    print [re.sub(r'[."\'\n]','',x) for x in _str]
    

    这个regex 删除所有(."'\n),结果将是:

    ['The vicar', ':--In the', 'cathedral']
    

    希望这会有所帮助。

    【讨论】:

    • 我想保留所有的标点符号。抱歉,我没有在我的问题或预期输出中说明这一点。标点符号太多了,除了使用正则表达式选择性地删除不需要的字符之外,我不知道任何自动解码的方法。
    • 任何你想保留的字符,不要放在正则表达式中。因此,如果您希望 . 像上次编辑一样出现在输出中,则使 regex = ["\'\n]
    • 你说得对,但是我的数据集太大了,而且字符很多。如果没有标准的解码方法,那么我将不得不建立一个标点符号列表并采用您的解决方案。非常感谢兄弟。
    猜你喜欢
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多