python - (Python)如何将一串字节恢复为原始字符串?
问题描述
我一直在解析网站,结果发现我以一种不太理想的方式将内容保存到 json 文件中,并且似乎无法对该过程进行逆向工程。基本上我已经保存了 BeautifulSoup 标签如下
r = requests.get(url).content
soup = BeautifulSoup(r, "html.parser")
article = soup.find("article")
b = article.encode()
c = str(b)
# save c in json structure using json.dump(f)
我希望能够获得给定 c 的文章。
使用编解码器似乎几乎可以让我到达那里:
import codecs
codecs.getdecoder("unicode_escape")(c)[0]
然而,斯堪的纳维亚字母 å,ä,ö 无法正确解码。
简而言之:
输入:
'b\'<article> \\n L\\xc3\\xa4s bl.a. om Gasporox nya m\\xc3\\xa4tkoncept f\\xc3\\xb6r tr\\xc3\\xa5g, en intervju med styrelseledamoten Per Nystr\\xc3\\xb6m och nyheter fr\\xc3\\xa5n GPX Medical om bland annat projekten Sinuslight och Neo-Lung.\\n</article>''
期望的输出:
<article>
Läs bl.a. om Gasporox nya mätkoncept för tråg, en intervju med
styrelseledamoten Per Nyström och nyheter från GPX Medical om
bland annat projekten Sinuslight och Neo-Lung.
</article>
提前致谢!
解决方案
您需要评估该b''
值,然后使用UTF-8
import ast
x = "b\'<article> \\n L\\xc3\\xa4s bl.a. om Gasporox nya m\\xc3\\xa4tkoncept f\\xc3\\xb6r tr\\xc3\\xa5g, en intervju med styrelseledamoten Per Nystr\\xc3\\xb6m och nyheter fr\\xc3\\xa5n GPX Medical om bland annat projekten Sinuslight och Neo-Lung.\\n</article>'"
x = ast.literal_eval(x)
result = x.decode("utf-8")
推荐阅读
- python - 如何使用多个 IF 语句 Python 迭代效率更高
- scala - 通过 RDD 计算文本文件中每个国家/地区的单词
- vue.js - Vuetify Flex Layout - 没有填充高度
- sql - 请帮助sqlerror
- c# - 我应该调用哪种方法来获取 c# Xamarin 表单中编辑器的标题?
- flutter - FutureBuilder 无法与 Firestore 一起正常工作
- android - RecyclerView 列表中的蓝牙设备
- electron - 使用 Electron 保存二进制数据
- python - Python - 在运行时传递变量
- jenkins-pipeline - 错误:“deck”的未知命令“/bin/sh”