2016-09-20 2 views
1

Может ли кто-нибудь помочь мне с этой программой вызова api python?Как отображать определенные части json?

import json 
from pprint import pprint 
import requests 
weather = requests.get('http://api.openweathermap.org/data/2.5/weather?  
q=London&APPID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') 
pprint(weather.json()) 

wjson = weather.read() 
wjdata = json.load(weather) 
print (wjdata['temp_max']) 

Так с этим куском кода, который я пытаюсь получить информацию от погоды апи он печатает это правильно, но когда я хочу, чтобы выбрать определенные значения только я получаю эту ошибку.

Traceback (most recent call last): 
    File "gawwad.py", line 7, in <module> 
    wjson = weather.read() 
AttributeError: 'Response' object has no attribute 'read' 

ответ

5

.json() является встроенный в requests JSON декодер, не нужно разобрать JSON отдельно:

import requests 

weather = requests.get('http://api.openweathermap.org/data/2.5/weather?q=London&APPID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') 
wjdata = weather.json() 
print (wjdata['temp_max']) 
0

alecxe правильно с использованием библиотеки JSON, если вы хотите узнать больше о привязки конкретных значений в объект json, посмотрите на типы данных словарей pythons. Это то, к чему, по сути, превращает их json.

https://docs.python.org/3/tutorial/datastructures.html#dictionaries

Ссылка выше покажет вам, как использовать их !! Словари - это структуры данных «ключ-значение», где ключи уникальны и не должны быть хешируемыми, а значения - любыми типами.

питон словарь быстрый пример:

dict = {'keyA' : 'valueA', 'keyB': 'valueB'} 
# To reference a value, use the key! 
print(dict['keyA']) 
# To add something 
dict['keyC'] = 'valueC' 
# now my dictionary looks like this 
dict = {'keyA' : 'valueA', 'keyB': 'valueB', 'KeyC' : 'valueC'} 

Отпечаток заявление будет выводить 'значение а'

Смежные вопросы