0

我对 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']
4

1 回答 1

1

问题在于您的循环和 ISBN 变量的使用。您不需要在分配期间对其进行索引,因为i已经包含列表的一个元素,作为循环的一部分提取。你得到一个例外,因为你不能用一个字符串索引一个列表,即使那个字符串是从列表本身出来的。

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

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

for i in range(len(ISBN)):
于 2012-07-30T01:47:38.337 回答