解码 python 中的列表

Decoding a list in python

我在 python

中有一个列表
['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']

我想像 "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals','McCafe\\xc3\\xa9' 一样解码为 'What's New, la carte & Value Meals,McCafe' 所需的输出将没有任何编码 (\\x98) 期望的输出:

['Deals', "What's New", 'la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe', 'Beverages', 'Side Lines', 'Snack Time']

您可以使用内置模块,re:

import re
l = ['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']
l = [re.sub(r'x\S\d',' ',s).replace('\','').strip() for s in l]
print(l)

输出:

['Deals', "What's New", 'la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe', 'Beverages', 'Side Lines', 'Snack Time']

re.sub(r'x\S\d',' ',s) 将 return 字符串 s 与此模式中的每 3 个相邻字符:

x, any character that's not a space, number

替换为 space。