【问题标题】:How to properly encode in Python?如何在 Python 中正确编码?
【发布时间】:2020-04-10 12:38:28
【问题描述】:

我是 python 新手,我正在努力编码

我有一个这样的字符串列表:

keys = ["u'part-00000-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv'", 
        " u'part-00001-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv'"]

我这样做是为了编码

keys = [x.encode('UTF-8') for x in keys]

但是我得到了“b”附加,结果是

[b"u'part-00000-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv'", 
 b" u'part-00001-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv'"]

我认为只使用 utf-8 编码会更简单

我做错了什么?

【问题讨论】:

  • 这能回答你的问题吗? Python 3 - Encode/Decode vs Bytes/Str
  • 您最初是如何得到原始字符串列表的?看起来一系列转换的结果出错了。这也是 Python 2 还是 3?
  • 它的python3,我从外部获取,我无法控制

标签: python unicode utf-8 encode


【解决方案1】:

您应该首先尝试修复用于获取原始字符串列表的方法,但如果您无法控制,则可以使用以下方法:

>>> import ast
>>> [ast.literal_eval(i.strip()) for i in keys]

结果应该是

[u'part-00000-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv', 
 u'part-00001-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv']

对于 Python 2,并且

['part-00000-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv', 
 'part-00001-6edc0ee4-de74-4f82-9f8c-b4c965896224-c000.csv']

适用于 Python 3。

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 2016-04-24
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多