更新-已解决
我已经解决了这个问题,因为我意识到我需要一个len函数,而不是index函数(并且还使用int)。解决办法是:
address = addressChunk[0] if len(addressChunk) == 3 else '-'
addresses.append(address)
原文
我正在浏览一个网站,业务地址通常遵循[地址、省代码、邮政编码],但有时输入的地址类似于[地址、省代码、邮政编码]或索引小于2的变体(假设为0、1、2)
我有下面的代码,根据逗号从列表中的索引中删除相应的值,如果列表索引等于2,则将其添加到变量中,否则它应该显示“-”,但我得到以下错误。请注意,当删除if语句时,代码在正常格式的地址上工作
# initiate storage
addresses = []
provinces = []
postalCodes = []
# grab container html with regex to find randomized result id
companies_div = soup.find_all('div', {'id': re.compile('result-id-.*')})
for x in companies_div:
#extract address class and split by comma
addressChunk = x.find('div', class_='result__address').text.split(',')
# assign first index (address) to addresses list if index equals 2
address = addressChunk[0] if int(addressChunk.index) == int(2) else '-'
addresses.append(address)
# same as above but for second index
province = addressChunk[1] if int(addressChunk.index) == int(2) else '-'
provinces.append(province)
postalCode = addressChunk[2] if int(addressChunk.index) == int(2) else '-'
postalCodes.append(postalCode)
但是,我最终出现以下错误:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'
请注意,当我从公式中删除“int”时,即使格式正确的地址也会显示为“-”
更新-已解决
我已经解决了这个问题,因为我意识到我需要一个len函数,而不是index函数(并且还使用int)。解决办法是:
相关问题 更多 >
编程相关推荐