【发布时间】:2021-08-31 13:23:11
【问题描述】:
a = "https://imagesvc.meredithcorp.io/v3/mm/image?url=https%3A%2F%2Fimages.media-allrecipes.com%2Fuserphotos%2F4418848.jpg"
output = re.split("=", a)[1]
print(output)
输出:https%3A%2F%2Fimages.media-allrecipes.com%2Fuserphotos%2F4418848.jpg
我想将此应用于整个列,我尝试以两种方式获取输出,但它给了我错误。该列还有一些没有值的行会影响输出吗?
mexican['Image'] = mexican['Image'].str.split("=")[1]
报错:
ValueError:值的长度 (1) 与索引的长度 (2982) 不匹配
for i in mexican['Image']:
mexican["Image"] = re.split("=", i)[1]
报错:
IndexError: 列表索引超出范围
解决办法:
我遇到了问题,因为我的专栏中有 Nan 值。所以我尝试在这种情况下使用 try-except 方法
for i in range(len(data['Image'])):
try:
data['Image'][i]=(data['Image'][i].split('='))[1]
except:
pass
【问题讨论】:
-
您在迭代时修改了
mexican列表。你的意思是这样的:for i in range(len(mexican['Image']): mexican['Image'][i] = re.split("=", mexican['Image'][i])[1]? -
@JohnnyMopp 仍然给出错误 IndexError: list index out of range
-
您还需要检查返回的数组的长度是否为 2。例如:
for i in range(len(mexican['Image'])): if '=' in mexican['Image'][i]: mexican['Image'][i] = mexican['Image'][i].split("=")[1]
标签: python string web-scraping error-handling scrapy