簡體   English   中英

Unicode警告:Unicode相等比較失敗

[英]UnicodeWarning: Unicode equal comparison failed

我不知道為什么我的兩個字符串無法比較和匹配。

warn_msg = ('Přihlášení bylo neúspěšné.') # Translated as: Login Failed.

soup = BeautifulSoup(auth, 'lxml')
find_login = soup.find("div", class_="box").text # Will Give: 'Přihlášení bylo neúspěšné.'' # Translated as: 'Login Failed.'

"""
find_login returns: 'Přihlášení bylo neúspěšné.
"""

if find_login == warn_msg:
    print('Nothing')

當我將bs4字符串與我的var warn_msg比較時,它們相等,但是python認為不是。 如果我僅使用不帶bs4 requests ,並從html中解析已分析的字符串並將其進行比較,則它= True。 我很困惑為什么它似乎不適用於bs4。 我在這里查看了編碼手冊: https : //www.python.org/dev/peps/pep-0263/但我沒有使它工作。

錯誤我得到:

UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

這只是我的僅使用requests工作示例

for i in passwords:
    auth = requests.post(login_url, headers=headers, data=payload).content[7838:7872]
    if auth == warn_msg:
        print('It works, strings match')

輸出:

C:\Users\petr>E:\Scripting\python\test.py
It works, strings match

從評論討論:

請在這種情況下找到兩個字符串的類型。 在這種情況下,一種是Unicode類型,另一種是字符串類型。 將字符串類型轉換為Unicode,然后比較兩個字符串可以幫助更快地解決問題。

快樂編碼:) @uzdisral

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM