1

ループの反復に基づいてURLと整数ベースを連結しようとしています。しかし、エラーが発生しています。TypeError: not all arguments converted during string formatting

for i in range(0,20):
    convertedI = str(i)
    address = 'http://www.google.com/search?q=%s&num=100&hl=en&start='.join(convertedI) % (urllib.quote_plus(query))

また、urllib.urlencode関数を試しましたが、同じエラーが発生しました。

メインで渡す文字列であるクエリに加えて、現在の反復値をURLの開始パラメータに割り当てたいと言っておくべきだったと思います>&start=1

したがって、最初の反復では、URLを次のようにします。

http://www.google.com/search?q=%s&num=100&hl=en&start=1' % (urllib.quote_plus(query))
4

2 に答える 2

3
for i in range(0, 20):
    address = 'http://www.google.com/search?q=%s&num=100&hl=en&start=%s' % (urllib.quote_plus(query), i)

暗黙的に使用する必要はありませんstr。また、シーケンス内の複数の文字列を取得し、それらを結合文字でまとめるために使用されるように、%sする必要もありません。単純な文字列フォーマットが必要です。joinjoin

于 2012-07-17T18:52:05.150 に答える
1

あなたは何をしているのか誤解していると思いますjoin。渡されたシーケンスの要素を結合するための区切り文字として引数を使用します。

>>> ','.join(['a', 'b', 'c'])
'a,b,c'

やりたいだけのように聞こえますが"http://..." + convertedI、何をしようとしているのかが明確ではありません。文字列のどこconvertedIurllib.quote_plus(query)値を入れますか?

于 2012-07-17T18:52:38.677 に答える