【问题标题】:How to convert a 'raw' string into a 'decoded' string in Python?如何在 Python 中将“原始”字符串转换为“解码”字符串?
【发布时间】:2021-05-21 04:31:57
【问题描述】:

我有以下字符串:

raw_text  = r"The Walt Disney Company, (2006\u2013present)"    
print(raw_text)
#result : The Walt Disney Company, (2006\u2013present)

我的问题是如何从 raw_text 中获取解码后的字符串“decoded_text”,以便获取

print(decoded_text)
#result : The Walt Disney Company, (2006-present)

除了这种琐碎的方法:

decoded_text = raw_text.replace("\u2013", "-")

事实上,我有很大的字符串,其中包含很多 \u-- 内容(如 \u2013、\u00c9 等)。所以我正在寻找一种方法以正确的方式一次转换所有这些。

【问题讨论】:

  • 如果您的输入实际上来自 Python 原始字符串文字、r 前缀和所有内容,那么只需关闭 r。如果您的输入不是来自 Python 原始字符串文字,那么您所要求的操作可能有点错误。这个输入是从哪里来的?
  • 我通过 BeautifulSoup 从网上获取了字符串。字符串中包含很多这样的东西。
  • 转义规则因上下文而异,解析 Python 字符串文字转义的某些内容会为 JSON 字符串转义做错事。

标签: python string type-conversion rawstring


【解决方案1】:

您可以使用内置的codecs 模块来完成此任务,如下所示

import codecs
raw_text  = r"The Walt Disney Company, (2006\u2013present)"
print(codecs.unicode_escape_decode(raw_text)[0])

输出:

The Walt Disney Company, (2006–present)

【讨论】:

    猜你喜欢
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多