我可以从网址中提取特定数据。
weather_data = r.get("http://api.openweathermap.org/data/2.5/weather?q=" + location)
json_weather = weather_data.text
weather_info = json.loads(json_weather)
print weather_info['coord']['lat']
print weather_info['coord']['lon']
以下是API上的Diplayed
问题是,如何提取多个数据并放入1个列表(dict)而不是逐个提取。
例如,我想把' lat',' lon','湿度'在同一个清单中。
{u'base': u'stations',
u'clouds': {u'all': 40},
u'cod': 200,
u'coord': {u'lat': 51.51, u'lon': -0.13},
u'dt': 1439476222,
u'id': 2643743,
u'main': {u'humidity': 88,
u'pressure': 1012,
u'temp': 291.71,
u'temp_max': 293.15,
u'temp_min': 290.15},
u'name': u'London',
u'rain': {u'1h': 1.78},
u'sys': {u'country': u'GB',
u'id': 5091,
u'message': 0.0242,
u'sunrise': 1439440988,
u'sunset': 1439493986,
u'type': 1},
u'visibility': 9000,
u'weather': [{u'description': u'light intensity shower rain',
u'icon': u'09d',
u'id': 520,
u'main': u'Rain'}],
u'wind': {u'deg': 60, u'speed': 4.6}}
答案 0 :(得分:1)
我认为您要问的是,如何仅从该数据集中提取纬度,经度和湿度值。
如果是这种情况,请尝试此版本。它采用列表locations
中的每个位置,然后收集坐标和湿度指数:
import requests
url = 'http://...' # url goes here
locations = ['London', 'New York', 'Chicago'] # adjust as required
results = {}
for loc in locations:
response = requests.get(url, params={'q': loc})
if response.status_code == 200:
data = response.json()
results[loc] = {'lat': data[u'coord'][u'lat'],
'lon': data[u'coord'][u'lon'],
'humidity': data[u'main'][u'humidity']}
else:
print('No results for {}'.format(loc))
print(results)
确保您拥有最新版本的请求(pip install -U requests
)。