正在遍历lxml表单提交的列表



我对Python很陌生,对lxml更陌生,但我想做的似乎很简单,但我不知道我做错了什么。

我有这样的代码,目的是将值列表(列表对象ISBN)提供给lxml,以提交到搜索字段:

for i in ISBN:
    page.forms[0].fields['_nkw'] = ISBN[i]
    blah blah blah

我在运行后得到这个错误:

Traceback (most recent call last):
page.forms[0].fields['_nkw'] = ISBN[i]
TypeError: list indices must be integers, not str 

显然,必须有一种方法来迭代一系列值,以提供给表单,但显然我不知道:)

编辑:仅供参考,当用硬输入替换ISBN[i]时,代码运行良好。编辑2:请求的ISBN列表对象的内容:

['9781608319053', '9780321558237', '9781932735413', '9781416059516', '9781437708257', '9780781780582', '9781437701517', '9780323065801', '9780890420256', '9780323079334', '9781599417042', '9780781771535', '9781416031215', '9780312601430', '9780781775250', '9781591263333', '9780071748896', '9780133669510', '9781416045748', '9780781771566', '9781437728019', '9780323065849', '9781416066675', '9780735579965', '9780323078917', '9781437735826', '9781603595681', '9780321696724', '9780321558145', '9781933107981', '9780138024611']

问题在于循环和使用ISBN变量。在分配期间,您不需要对其进行索引,因为i已经保存了列表中的一个元素,该元素是作为循环的一部分提取的。您遇到了一个异常,因为您无法使用字符串为列表编制索引,即使该字符串来自列表本身。

相反,请使用page.forms[0].fields['_nkw'] = i

或者,如果您需要将索引放入ISBN列表中,以便稍后显示未显示的代码,请保持赋值不变,并将循环声明更改为:

for i in range(len(ISBN)):

最新更新