在python中如何用“'”替换“\\u0027”?

2024-04-20 04:47:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我正在尝试编写一个scraper

首先,我在一个变量中提取这种字符串(我们称它为数据[1],因为它包含在一个数组中):

\"description\":\"Alors qu\\u0027ils montaient dans l\\u0027un des couloirs du versant nord du Hohneck (\\"le premier couloir \u00E0 droite\\"), deux alpinistes ont d\u00E9clench\u00E9 une plaque et ont \u00E9t\u00E9 emport\u00E9s tous les deux. L\\u0027un sera enseveli et l\\u0027autre ne pourra d\u00E9clencher l\\u0027alerte qu\\u0027\u00E0 la nuit. La victime ne sera retrouv\u00E9e que d\u00E9but avril. \u003cbr\u003e Sur la photo prise en f\u00E9vrier 2011, le trac\u00E9 approximatif de l\\u0027avalanche a \u00E9t\u00E9 repr\u00E9sent\u00E9.\",

然后,我使用:

data = data[1].encode().decode('unicode-escape')

但它给了我:

"description":"Alors qu\u0027ils montaient dans l\u0027un des couloirs du versant nord du Hohneck (\"le premier couloir à droite\"), deux alpinistes ont déclenché une plaque et ont été emportés tous les deux. L\u0027un sera enseveli et l\u0027autre ne pourra déclencher l\u0027alerte qu\u0027à la nuit. La victime ne sera retrouvée que début avril. \u003cbr\u003e Sur la photo prise en février 2011, le tracé approximatif de l\u0027avalanche a été représenté.",

事实上,带重音的字符已被替换,但撇号未被处理! 这两个反斜杠似乎是原因

我尝试了几种方法: 像解码两次,然后“\u0027”变成“”,但“é”变成“Ô)

data.replace('é', 'é')data.replace(u'\u0027', u'é')不起作用

那么,你知道我如何解决这个问题吗


Tags: ledatadescriptionlaetneduont
1条回答
网友
1楼 · 发布于 2024-04-20 04:47:43

问题解决了

正如user2357112所说,我试图手动处理json。 但是做:

data = html_page.find_all("script")
data = re.findall("(?<=JSON\.parse\(')[A-Za-z0-9'.?!/+=;:,()\\\ \"\-{_àâçéèêëíìîôùûæœÁÀÂÃÇÉÈÊËÍÌÎÔÙÛ©´<>]*", str(data))

data = data[0].encode().decode('unicode-escape') + "\"\"}"    
data_dict = json.loads(data)
string_data_dict = json.dumps(data_dict)

for cle, val in data_dict.items() :
    print(cle + " : " + str(val))

解决了这个bug

使用此代码,输入字符串如下:

<script>
var admin = false;
var avalanche = JSON.parse('{...\"description\":\"Alors qu\\u0027ils montaient dans l\\u0027un des couloirs du versant nord du Hohneck (\\\"le premier couloir \u00E0 droite\\\"), deux alpinistes ont d\u00E9clench\u00E9 une plaque et ont \u00E9t\u00E9 emport\u00E9s tous les deux. L\\u0027un sera enseveli et l\\u0027autre ne pourra d\u00E9clencher l\\u0027alerte qu\\u0027\u00E0 la nuit. La victime ne sera retrouv\u00E9e que d\u00E9but avril. \\u003cbr\\u003e Sur la photo prise en f\u00E9vrier 2011, le trac\u00E9 approximatif de l\\u0027avalanche a \u00E9t\u00E9 repr\u00E9sent\u00E9.\",...

给出如下输出:

...
description : Alors qu'ils montaient dans l'un des couloirs du versant nord du Hohneck ("le premier couloir à droite"), deux alpinistes ont déclenché une plaque et ont été emportés tous les deux. L'un sera enseveli et l'autre ne pourra déclencher l'alerte qu'à la nuit. La victime ne sera retrouvée que début avril. <br> Sur la photo prise en février 2011, le tracé approximatif de l'avalanche a été représenté.
...

谢谢你

相关问题 更多 >