繁体   English   中英

列表索引必须是整数,而不是元组

[英]List indices must be integers, not tuple

我搜索了这个问题并尝试使用上面的解决方案,但它们似乎都不起作用。

我目前的代码是:

 for item in g_data:
     print item.contents[1].find_all("a", {"class": "a-link-normal"})[[1], [2], [3]]['href'] 

这导致TypeError: indices must be integers, not tuple

我怎么能解决这个问题呢?我知道这是一个简单的问题,但我尝试的解决方案导致它出现并说“不列表”,“不是str”或“不是元组”。

所以我通过规避选择问题完全解决了手头的问题。

继承人我做了什么:

对于g_data中的项目:print item.contents [1] .find_all(“a”,{“class”:“a-link-normal s-access-detail-page a-text-normal”})[0] [“ HREF“]

这样做首先搜索页面上的主要内容(任何网址都可以在G_data中)。 接下来它将选择[1]这是焦点内容,产品,图像,链接等。它摆脱了所有其他的东西。 然后是括号内的部分,它的作用是选择这段内容

大猩猩胶带11米

现在它没有选择那个,它选择页面上的所有产品。 之后有[0]这是第一个产品的选择,所以如果页面上有15个产品,则为0。

那么你有[“href”]这样做只需要该关键字中的数据,在这种情况下是相关产品页面的网址。

通过在此方法中执行此操作,您可以选择代码并粘贴,并使其如下所示:

print item.contents [1] .find_all(“a”,{“class”:“a-link-normal s-access-detail-page a-text-normal”})[0] [“href”] print item .contents [1] .find_all(“a”,{“class”:“a-link-normal s-access-detail-page a-text-normal”})[1] [“href”] print item.contents [1] .find_all(“a”,{“class”:“a-link-normal s-access-detail-page a-text-normal”})[2] [“href”]

或者你可以找到一种方法,在一行代码中列出XY中的所有产品,这应该不难。

如果这样的话

print item.contents[1].find_all("a", {"class": "a-link-normal"})[1]['href']

这是正确的,你只需指定一个整数作为索引。 我想你想这样做。

for item in g_data:
     print [item.contents[1].find_all("a", {"class": "a-link-normal"})[index]['href'] for index in [1,2,3]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM