Python:连接URL和整数

时间:2012-07-17 18:50:00

标签: python string url urllib2 string-concatenation

我试图在循环的迭代上连接url和integer。但我收到错误: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参数> &start=1

所以第一次迭代我想把我的网址作为

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

2 个答案:

答案 0 :(得分: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隐式为您执行此操作。也不需要join,因为join用于在序列中获取多个字符串并将它们与连接字符一起拉出来。你只想要简单的字符串格式化。

答案 1 :(得分:1)

我认为你误解了join的作用。它使用其参数作为分隔符来连接传递序列的元素:

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

听起来你只想做"http://..." + convertedI,但目前尚不清楚你想要做什么。您希望{1}}和convertedI值在字符串中的哪个位置?