如何使用python脚本在url标记中应用一个整数类型的变量?

时间:2016-11-10 22:29:03

标签: python json

当我想要自定义网址标记时,我得到TypeError: cannot concatenate 'str' and 'int' objects" id"需要。

代替单个id(比如303)返回的单个结果,我希望得到变量" station"中声明的所有id的结果。从另一个网址中检索。 代码如下:



import urllib2
import json

#assign the url
url="http://ewodr.wodr.poznan.pl/doradztwo/swd/swd_api.php?dane={%22token%22:%22pcss%22,%22operacja%22:%22stacje%22}"

# open the url 
json_obj= urllib2.urlopen(str(url))
output= json.load(json_obj) 
station_res= output ['data'] ['features']
for item in station_res:
	station= item['id']
url1="http://ewodr.wodr.poznan.pl/doradztwo/swd/meteo_api.php?dane={%22token%22:%22pcss%22,%22id%22:}" +str(station)
	json_obj2= urllib2.urlopen(str(url1))
	output2= json.load(json_obj2)
	for item2 in output2 ['data']:
		print item2




现在我试图把#34;电台"作为" url1"中的字符串但它仍然无法识别网址并返回错误:

Traceback (most recent call last):
    `File "stations.py", line 23, in <module>`
        `for item2 in output2 ['data']:`

KeyError: 'data'

1 个答案:

答案 0 :(得分:0)

问题是您在&#39;}&#39;之后添加了id。所以你的网址看起来像

   http://ewodr.wodr.poznan.pl/doradztwo/swd/meteo_api.php?dane={%22token%22:%22pcss%22,%22id%22:}331

什么时候看起来像

 http://ewodr.wodr.poznan.pl/doradztwo/swd/meteo_api.php?dane={%22token%22:%22pcss%22,%22id%22:331}

所以我建议:

url1 = 'http://ewodr.wodr.poznan.pl/doradztwo/swd/meteo_api.php?dane={%22token%22:%22pcss%22,%22id%22:' + str(station) + '}'

并且您不需要编写str(url1),因为它已经是字符串。