UnicodeWarning: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 不这么认为。如果我只使用 requests 而没有 bs4 并从 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