Python 需要有关尝试将len(项)添加为索引的帮助。

Python 需要有关尝试将len(项)添加为索引的帮助。,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我正在努力搜集一些数据,我想我找到了解决方案,但我正在努力为它编写代码 # This returns a list that changes depending on the page description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract() 我需要得到确切的len(description),并将该长度添加为描述的索引(不确定是否正确使用了单词索引) 比如说 d

我正在努力搜集一些数据,我想我找到了解决方案,但我正在努力为它编写代码

# This returns a list that changes depending on the page     
description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()
我需要得到确切的len(description),并将该长度添加为描述的索引(不确定是否正确使用了单词索引)

比如说

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()

len(description)
如果描述长度为4

代码需要说明

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()[-4:]
注意:我需要里面的“-”和“:”

我将在几页纸上匆匆翻阅,所以透镜总是在变化。我假设我需要为此编写一个新函数。 任何帮助都将不胜感激

代码

my_list[-len(my_list):]
将始终返回原始列表(实际上是副本),因为

表示“获取
my_list
的最后
x
元素”,您将
x
设置为列表中的元素数,因此它将获取所有元素

例如:

In [1]: my_list = [1, 2, 3, 4]

In [2]: my_list[-len(my_list):]
Out[2]: [1, 2, 3, 4]
总的来说,你在问什么还不是很清楚。你能重新措辞你的问题吗

在此处使用变量而不是常量:

因此,第一步只需提取描述的len(),并将该len保存到一个变量:

len_= int(response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract())
然后只需检查
是否符合以下条件:

if len(len_)==4:
如果上述条件为真,则执行以下代码:

第二步现在将该变量用作切片的索引号:

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()[-len_:]
找出长度

len(description)
假设长度为4。因此,执行您正在执行的操作将再次返回相同的列表

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()[-4:]
下面是一个例子来说明这一点:
这是因为[-9]指向列表的开头,[-9:]因此表示列表或完整列表的开头。

请给出描述示例以及该描述的所需输出,因为不清楚您将如何使用len。无论len是什么,我都将使用它来索引描述。我遇到了一个障碍,当我将刮取的数据输出为csv时,“描述”单元格总是空的。虽然当我使用[-1:]作为索引时,那些描述中只有一个列表的会出现,而其余的不会出现。我希望通过使用精确的len,我能够让所有的描述都起作用。仍然没有例子不清楚你到底想实现什么。我明白我做错了什么。我试图通过执行“['+len+':]”来连接len。如果你有时间,你能向我解释为什么我不能用这种方式连接它吗?无论如何,感谢您的帮助=)@DanielAhn如果我的解决方案有帮助,您可以@DanielAhn您是否意识到,当您这样做时,您得到的结果与只使用extract()而不使用任何其他代码相同?正如其他两个答案所告诉你的,x[-len(x):]=x@Gnudiff我忘记了条件,我已经更新了。是的,我现在意识到了。lol。尝试解决方案后,导出的csv文件仍然有空白单元格。我将不得不进行更多的调试,以了解它输出不正确的原因。我现在假设这是因为我将它输出为csv,因为当我输出为json时,描述信息会显示出来,而在csv上它只显示为空白单元格。
len(description)
description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()[-4:]
>>> a=[1,2,3,4,5,6,7,8,9]
>>> print(a)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(a)
9
>>> a=a[-(len(a)):]
>>> print(a)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(a[-9])
1