我在试着从json源获取温度。它是嵌套的,我不知道如何从json文件或url中获取嵌套值,所以到目前为止我的代码如下:
#! /usr/bin/python
import urllib2
import json
f = urllib2.urlopen('http://api.openweathermap.org/data/2.5/find?q=London&units=metric')
json_string = f.read()
parsed_json = json.loads(json_string)
temp = parsed_json['list']
print "Current temperature is: %s" % (temp)
f.close()
现在我可以一次获得所有的值,但不只是一个特定的值(在我的例子中是temp),如果可能的话,我更喜欢在没有u‘temp’的情况下获得干净的值。
发布于 2014-10-09 07:02:28
u'temp'
是Python表示unicode
对象的方式,这也是JSON字符串在Python中的解析方式。这就是你要找的吗?
print temp[0]['main']['temp']
我不知道您调用的API的结构,所以这可能做了相当多的假设,但它会得到原始温度。
发布于 2014-10-09 07:05:31
您将得到几个值。要将它们全部列出,请执行以下操作:
import urllib2
import json
f = urllib2.urlopen('http://api.openweathermap.org/data/2.5/find?q=London&units=metric')
json_string = f.read()
parsed_json = json.loads(json_string)
for each in parsed_json['list']:
country = each['sys']['country']
temperature = each['main']['temp']
print "Current Temperature in {} is {}".format(country, temperature)
输出
Current Temperature in CA is 11.73
Current Temperature in GB is 11.8
https://stackoverflow.com/questions/26267744
复制相似问题