Dav*_*ave 0 python list nonetype
示例代码
list = [i.get('content').encode('utf-8') for i in self.soup.find_all('meta',attrs={"name": "description"})]
Run Code Online (Sandbox Code Playgroud)
问题是.encode('utf-8')会引发错误:
AttributeError: 'NoneType' object has no attribute 'encode'
Run Code Online (Sandbox Code Playgroud)
如果列表中的一个元素是None.
我想知道是否有一种'pythonic'方式将它保持在一行并忽略None元素.例如,您可以if not None在列表中放置一个子句吗?谢谢.
我会将其分解为初始提取的生成器表达式以限制查找,因此get仅针对性能调用一次.
items_i = (i.get('content') for i in self.soup.find_all('meta',attrs={"name": "description"}))
items = [i.encode('utf-8') for i in items_i if i]
Run Code Online (Sandbox Code Playgroud)