检查字符串List中是否存在非ASCII字

时间:2014-11-23 17:32:29

标签: python python-3.x unicode beautifulsoup

我从网页上删除了这个列表

scraped = ['24 hour front desk', 'Bar / Lounge', 'Business centre', 'Café']

我想检查列表中是否存在Cafe

我这样做:

if "Caf" in scraped:
 print("Yes")
else:
 print("No")

始终打印 原因我写的Caf来自抓取的列表,它总是以非ascii字符Café

如何在不执行此# -*- coding: utf-8 -*-的情况下执行此检查?

2 个答案:

答案 0 :(得分:3)

if "Caf" in scraped:

检查文字字符串" Caf"在列表中,它不是。

检查" Caf"在列表中的任何字符串中,使用:

if any("Caf" in s for s in scraped)

要检查非ascii字符,您始终可以使用unicode转义序列:

>>> "Caf\xe9" == 'Café' 
True`

答案 1 :(得分:1)

ch3ka的答案解决了代码中的问题。这是此类问题的替代方案。

您可以使用awesome-slugify模块来处理这些字符,例如

from slugify import slugify

print(slugify('Café')) # outputs 'Cafe'