Как заменить "\\ u0027" на "'" в python? - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в python, и я пытаюсь запрограммировать скребок.

Во-первых, я извлекаю строку такого типа из переменной (давайте назовем ее data [1] , потому что он содержится в массиве):

\ "description \": \ "Alors qu \ u0027ils montaient dans l \\ u0027un des couloirs du versant nord du Hohneck (\\ "Le Premier Couloir \ droite \\"), deux alpinistes on d \ u00E9 unqueque et alt \ on00E9 emport \ u00E9s tous les deux. L \\ u0027un sera enseveli et l \\ u0027 я люблю тебя, но я не знаю, что тебе нужно, но ты не знаешь, но я не знаю, что это за фотография 2011 года, или около того 2011 года l \\ u0027 лавинный и повторный отправка \ ",

затем я использую:

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

, но это дает я:

"описание": "Alors quontions dans l \ u0027un des couloirs du versant nord du Hohneck (\" le premier co uloir a droite \ "), deux alpinistes on déclenché un plaque et on etete emportés tous les deux. С тех пор я не могу от него отказаться. Время прощения и возвращение Аврил. Награда за фотографии, полученная в 2011 году, представляет собой весьма подробное представление. " причиной являются две обратные косые черты.

Я попробовал несколько методов: например, дважды декодировать, а затем "\ u0027" становится "" ", но" é "становится" Ã ".

data.replace('é', 'é') или data.replace(u'\u0027', u'é') не работает

Итак, у вас есть идеи, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 05 апреля 2020

Проблема исправлена!

Поскольку пользователь 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))

решает ошибку.

С этим кодом входная строка наподобие:

<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é.
...

Спасибо.

...