python - 如何在 Python 中将带有特殊字符的字符串变量转换为正确打印
问题描述
对不起,如果标题令人困惑,但我已经研究了两个小时并且不知道我应该如何提出这个问题,所以任何人都可以随意编辑这篇文章。
我有这个使用网络抓取创建的字符串变量,它使用特殊字符,在打印时看起来像“\ud83d\ude00\u0107\u00e7 \n hello”,没有引号。问题是我希望它打印实际的特殊字符,但我不确定应该使用哪种编码方法。如果我复制并粘贴确切的字符串并打印它,它工作正常,但作为我创建的变量,它不显示特殊字符,只显示文本。
我尝试使用 json.load、unicode-escape、UTF-8 和其他一些方法将其转换为字符串,但老实说我不确定我应该使用什么方法
page = requests.get('https://www.example.com')
soup = str(BeautifulSoup(page.text, 'html.parser')).splitlines()
for line in soup:
if 'hello' in line:
print(line) #produces literal text of \ud83d\ude00\u0107\u00e7 \n hello
print('\ud83d\ude00\u0107\u00e7 \n hello') #produces wanted result
我希望结果看起来像这样:
契奇
你好
解决方案
经过一个小时的反复试验,我发现这就是答案:
line.encode('utf-8').decode('unicode-escape')
推荐阅读
- python - Django允许为单个记录上传多个文件
- java - 我刚刚安装了flutter android studio和dart,但是现在当我通过简单地运行初始代码来检查我的模拟器设置时,它会显示错误
- react-native - 本机级别的拦截器在本机反应中
- google-cloud-platform - 是否可以更改在 GCP 中使用 slurm 集群创建的 VM 的 CPU 规格?
- python - 如何从 m4a 文件中获取帧数?
- javascript - 如何通过 put 方法部分更新 mysql 记录而不将其他属性留空
- javascript - 如何在用户表 Laravel 中插入从多选下拉列表中选择的值
- reactjs - 如何修复类型错误 Type '(string | Element) [] is not assignable to type 'string | 元素 | 使用反应和打字稿未定义'?
- angular - 反应式表单验证不适用于 ControlValueAccessor
- firebase - Firebase :: 创建具有角色的第一个用户