【发布时间】:2023-04-05 08:24:01
【问题描述】:
我正在尝试遍历列表“公司”以查找在其第 5 个元素中包含“VIC”的元组。但是,我收到以下错误:
'预期的字符串或类似字节的对象'
我知道这个错误是由于列表的最后一个元组中未完成的括号造成的。我将如何解决这个问题? (公司列表来自大型数据集)
我应该怎么做才能解决这个问题?
merchant_state = 'VIC'
companies = [(378355, 'ACT', 'DEJAN TOMIC', 'Individual/Sole Trader',
'VIC', '3175', 97603461250, 'FADEDLINESBARBERSHOP', 20),
(408649, 'ACT', 'ALEXANDER DEJANOVIC',
'Individual/Sole Trader', 'NSW', '2193', 97733511621, None, 20),
(433402, 'ACT', 'LUTHERAN CHURCH OF AUSTRALIA QUEENSLAND DISTRICT(LUTHERAN COMM CAR', 'Other Unincorporated Entity', 'QLD', '4560', 97899426696, 'GRACEVILLE CENTRE', 20)]
companies = [item for item in companies if re.search(item[4],merchant_state, re.IGNORECASE ) != -1]
【问题讨论】:
-
您正在解析整数,re 无法处理。
-
这里的数据无法重现您的错误,可能在您的实际数据中
item[4]中存在非字符串,我们无法知道。请注意,无论错误if re.search(item[4],merchant_state, re.IGNORECASE ) != 1应该是if re.search(item[4],merchant_state, re.IGNORECASE ) != -1,代码都不会按您期望的方式工作,因为re.search永远不会返回-1或任何整数,它返回一个re.Match对象或@987654328 @,因此 oyu 可以过滤真实性 -
@juanpa.arrivillaga。你是对的。我现在修改了我的问题以反映这一点。
-
您的编辑根本没有解决这个问题。代码仍然没有抛出任何错误。也不清楚您所说的“我知道这个错误是由于列表的最后一个元组中未完成的括号造成的。我该如何解决这个问题?(公司列表来自一个大型数据集)”...... 没有未完成的括号,不清楚您的意思,除非您指的是
str中的括号,但为什么这会影响任何事情呢? -
请注意,该错误表明
re.search的second 参数类型错误。那将是merchant_state,而不是item[4]。
标签: python list list-comprehension re