Python 类型错误:';在<;字符串>';需要字符串作为左操作数,而不是布尔
我正在使用scrapy 1.1。提取实体后,我得到一个字符串,如下所示:Python 类型错误:';在<;字符串>';需要字符串作为左操作数,而不是布尔,python,Python,我正在使用scrapy 1.1。提取实体后,我得到一个字符串,如下所示: bob jones | acme, inc | jeff roberts |company, llc 我想得到所有公司的名单,所以我试着: company_types = ['inc','llc','corp'] entities = str(item.get('entities')).lower entity_list = entities.split('|') company_list= [a in entity_l
bob jones | acme, inc | jeff roberts |company, llc
我想得到所有公司的名单,所以我试着:
company_types = ['inc','llc','corp']
entities = str(item.get('entities')).lower
entity_list = entities.split('|')
company_list= [a in entity_list if any(company_types) in a]
我得到:
company_list= [a for a in entity_list if any(company_types) in a]
TypeError: 'in <string>' requires string as left operand, not bool
company\u list=[a表示实体中的列表(如果有)(公司类型)
TypeError:“in”需要字符串作为左操作数,而不是bool
我做错了什么 你不能像那样使用
any
和all
。这些函数返回您传递给它们的任何或所有内容是否为真,因此它们返回true
或False
,而不是您可以在中使用的一些神奇的东西,您不能像这样使用任何和所有。这些函数返回您传递给它们的任何或所有内容是否为真,因此它们返回true
或False
,这不是您可以在中使用的神奇功能这里的问题:
company_list = [a for a in entity_list if any(company_types) in a]
请记住,any()
只是一个必须返回单个值的函数。。。代码将检查单个值是否在a
中,这不是您想要的
company_list = [a for a in entity_list if any(t in a for t in company_types)]
基本上,括号放错了地方。有点像。这里的问题是:
company_list = [a for a in entity_list if any(company_types) in a]
请记住,any()
只是一个必须返回单个值的函数。。。代码将检查单个值是否在a
中,这不是您想要的
company_list = [a for a in entity_list if any(t in a for t in company_types)]
基本上,括号放错了地方。有点。我想您正在查找本页上的信息:
尝试更改:
company_list= [a in entity_list if any(company_types) in a]
到
我想您正在查找本页上的信息:
尝试更改:
company_list= [a in entity_list if any(company_types) in a]
到
用…回答