तो मैं विशेष HTML वर्णों से छुटकारा पाने की कोशिश कर रहा हूं और उसके लिए html.unescape का उपयोग किया है। समस्या यह है कि यदि पंक्ति में 2 विशेष वर्ण हैं, तो फ़ंक्शन वास्तव में काम नहीं करता है जो मैं चाहता था

मैंने html.unescape (html.unescape (पाठ)) जैसे कई फ़ंक्शन कॉल की कोशिश की, लेकिन निश्चित रूप से यह एक भयानक विचार है

str='Anchor says Buckingham Palace pressure killed ABC's story on Epstein'
print(html.unescape(str))

तो सभी पात्रों को प्रतिस्थापित करने के बजाय, आउटपुट है:

Anchor says Buckingham Palace pressure killed ABC's story on Epstein

क्या इस तरह की समस्या से निपटने का कोई तरीका है?

0
H8oddo 7 नवम्बर 2019, 02:12

1 उत्तर

सबसे बढ़िया उत्तर

टिप्पणियाँ सही होती हैं जब वे कहते हैं कि आमतौर पर हमारे डेटा में कुछ गड़बड़ होती है जब यह कई स्तरों से गहराई तक बच जाता है। हालाँकि, अगर हम इस समस्या को वैसे ही स्वीकार करना चाहते हैं, और अभी भी इसे हल करने की आवश्यकता है, इसलिए यदि हमें एक स्ट्रिंग प्राप्त होती है जो संभावित रूप से कई बार बच जाती है, और हम नहीं जानते कि यह कितनी बार बच जाती है, तो हम बस बच सकते हैं इसमें से, यानी जब तक यह और नहीं बदलता।

हम इसे while-लूप के साथ इस प्रकार कर सकते हैं:

import html


def ultimately_unescape(s: str) -> str:
    unescaped = ""
    while unescaped != s:
        s = html.unescape(s)
        unescaped = html.unescape(s)

    return s

जो हमें देता है:

>>> ultimately_unescape("Anchor says Buckingham Palace pressure killed ABC's story on Epstein"))
"Anchor says Buckingham Palace pressure killed ABC's story on Epstein"
0
jonathan.scholbach 7 नवम्बर 2019, 02:39