在python中使用'requests'模块的数据

时间:2014-04-16 20:41:43

标签: python json

我可以使用以下代码从python的请求模块加载一些天气数据:

 from pprint import pprint
import requests

r = requests.get('http://api.openweathermap.org/data/2.5/weather?q=London')

pprint(r.json())

但是我如何实际使用它产生的数据呢?我不能为我的生活找到相关的文档或教程如何做到这一点。这是pprint的输出:

{u'base': u'cmc stations',
 u'clouds': {u'all': 0},
 u'cod': 200,
 u'coord': {u'lat': 42.98, u'lon': -81.23},
 u'dt': 1397676977,
 u'id': 6058560,
 u'main': {u'humidity': 25,
           u'pressure': 1024,
           u'temp': 278,
           u'temp_max': 283.15,
           u'temp_min': 275.37},
 u'name': u'London',
 u'rain': {u'1h': 0.25},
 u'snow': {u'3h': 0},
 u'sys': {u'country': u'CA',
          u'message': 0.0467,
          u'sunrise': 1397644810,
          u'sunset': 1397693338},
 u'weather': [{u'description': u'light rain'
               u'icon': u'10d',
               u'id': 500,
               u'main': u'Rain'}],
 u'wind': {u'deg': 168.001, u'speed': 3.52}}

我如何处理列表中的项目?例如,只打印自己的temp,也许将其用作变量。 E.g:

temp = *not sure what to put here*
print temp

1 个答案:

答案 0 :(得分:4)

现在你有了结果:

results = r.json()

只需像任何其他Python词典一样访问它:

main = results['main']  # Get the 'main' key's value out of results
temp = main['temp']  # Get the 'temp' key's value out of main
print temp

或更简洁(以及你几乎总是在现实生活中写这个的方式):

print results['main']['temp']