如何在 Python 中将“原始”字符串转换为“解码”字符串?
Posted
技术标签:
【中文标题】如何在 Python 中将“原始”字符串转换为“解码”字符串?【英文标题】:How to convert a 'raw' string into a 'decoded' string in 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 字符串转义做错事。
【参考方案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)
【讨论】:
以上是关于如何在 Python 中将“原始”字符串转换为“解码”字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在python中将unsigned char类型的int字符串转换为int
如何在python中将一维值列表转换为0和1的二维网格[重复]