检查列表中是否有要避免的下一项:列表索引超出范围

2024-05-19 15:20:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在寻找解决办法

I try to get the images from: 
<pics>
<pic>240006.jpg</pic>
<pic>240006_2.jpg</pic>
</pics>

欢迎使用此代码:

for x in root.iter('product'):
    pics =x.findall('pics/pic')

    images = "https://cdn.edc-internet.nl/800/" + pics[0].text + ";" + "https://cdn.edc-internet.nl/800/" + pics[1].text + ";" + "https://cdn.edc-internet.nl/800/" + pics[2].text
print(images)

有些产品有两个图像,它会创建一个“超出范围的列表” 我想检查是否有一个值,如果不是让在线查看2甚至1图像链接

我用if语句尝试了一下,但失败了,我用try尝试了一下:但这只给了我3张图片的值


Tags: totexthttps图像getnlcdninternet
2条回答

试试这个:

for x in root.iter('product'):
    pics=x.findall('pics/pic')

    for i in range(len(pics)):
        images=images+"https://cdn.edc-internet.nl/800/"+pics[i].text+";"
    print(images)

因为您可能不知道pics中有多少元素,所以更好的方法是迭代它,动态创建URL。这将避免使用固定索引,正如您所看到的,如果pics长度小于3,则该索引可能会中断,如果最后删除的项目超过3,则返回所有项目

for x in root.iter('product'):
    pics = x.findall('pics/pic')

    URL = "https://cdn.edc-internet.nl/800/%s"
    images = ";".join(URL % picture for picture in pics)

    print(images)

相关问题 更多 >