我对Json,Phyton非常陌生。但我试图创建自己的天气应用程序。 我没有把这个Jsonobject的天气搞定。
这就是Jsonobject的样子:
FROM microsoft/aspnetcore:1.1
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "WebApplication3.dll"]
这是我的代码:
{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":300,"main":"Drizzle","description":"light intensity drizzle","icon":"09d"}],"base":"stations","main":{"temp":280.32,"pressure":1012,"humidity":81,"temp_min":279.15,"temp_max":281.15},"visibility":10000,"wind":{"speed":4.1,"deg":80},"clouds":{"all":90},"dt":1485789600,"sys":{"type":1,"id":5091,"message":0.0103,"country":"GB","sunrise":1485762037,"sunset":1485794875},"id":2643743,"name":"London","cod":200}
这是错误:
ypeError:不可用类型:' list'
答案 0 :(得分:0)
我相信这是你做错的地方
weer = json_object['weather',[1]]
将其更改为:
weer = json_object['weather'][0]
另外,我不认为你有数据对象' name'在您的json数据plaats = str(json_object['name'])
答案 1 :(得分:0)
在您的上述请求中,您尝试使用绑定索引(即[1])访问列表,而不必使用[0]:
def temperatuur():
zipcode = '10024'
r = requests.get('http://api.openweathermap.org/data/2.5/weather?zip='+zipcode+'&APPID=84c7d83bae2f2396ebd3a4a48dfdd057')
json_object = r.json()
weer = json_object['weather'][0]
temp_k = int(json_object['main']['temp'])
temp_c = (temp_k - 273)
plaats = str(json_object['name'])
return render_template('temperatuur.html', temperatuur=temp_c, plaats = plaats, weer = weer)
我相信你会得到理想的结果。