'list' 对象没有属性 'decode' - Python 错误

'list' object has no attribute 'decode' - Python error

我在解码字符串中的某些数据时遇到问题

respData = urllib.request.urlopen(
    'https://www.mcdelivery.com.pk/pk/browse/menu.html')

resp = respData.read()

link = re.findall(r'<ul class="secondary-menu">(.*?)</ul>', str(resp))
# URLS
Urls = re.findall("href=[\"\'](.*?)[\"\']", str(link))

# remove amp from the urls
Url1 = [re.sub(r'amp;', '', item) for item in Urls]
# menu
deals = re.findall(r'<span>(.*?)</span>', str(link))
print(deals)

输出:

['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCaf\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']

我想改变这个 \\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals, McCaf\\xc3\\xa9''What's New', 'la carte & Value Meals' ,'McCafe' 我相信它与 .decode('utf-8') 有关,我确实申请了我正在使用正则表达式获取交易的行 deals = re.findall(r'<span>(.*?)</span>', str(link)).decode('uts-8') 但它给出了一个错误:

deals = re.findall(r'<span>(.*?)</span>', str(link)).decode('uts-8')
AttributeError: 'list' object has no attribute 'decode'

总结: 我知道我的问题可以通过 decode('utf-8') 解决,但我无法正确应用它。只需要帮助如何解码我在交易中获取的数据

字符串已编码,因此您可以看到类似 "\\" 的内容,这意味着 "\" \\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85实际上是★What's New★
所以我们现在可以分两步来处理:

str1 = """\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals, McCaf\\xc3\\xa9'"""
str2 = str1.replace("\\","\")
print(str2)

# \xe2\x98\x85What\'s New\xe2\x98\x85", '\xc3\x80la carte & Value Meals, McCaf\xc3\xa9'

然后我们处理:

str1 = b"""\xe2\x98\x85What\'s New\xe2\x98\x85", '\xc3\x80la carte & Value Meals, McCaf\xc3\xa9'"""
str2 = str1.decode("utf-8")
print(str2)

# ★What\'s New★", 'Àla carte & Value Meals, McCafé'

希望对您有所帮助