(Python)如何将字节字符串还原为原始字符串?

2024-10-01 07:31:40 发布

您现在位置: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> 

提前谢谢


Tags: jsonarticlemedtrensoupcodecsbl
1条回答
网友
1楼 · 发布于 2024-10-01 07:31:40

您需要计算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")

相关问题 更多 >