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 に答える