2016-11-09 2 views
-3

Я играю с лигой легенд api, так или иначе я сделал эту очень простую программу.Python, принимая конкретные данные от JSON

import requests 
region = input("Enter a region ") 
summonerName = input("Enter Summoner Name ") 
apikey = input("Enter APIKey ") 
r = requests.get(url="https://" + region + ".api.pvp.net/api/lol/" + region + "/v1.4/summoner/by-name/" + summonerName + "?api_key=" + apikey) 
print(r.json()) 

и это то, что он возвращает.

{'hiimeric': {'revisionDate': 1478543641000, 'name': 'Hi Im Eric', 'id': 36843151, 'profileIconId': 13, 'summonerLevel': 30}} 

поэтому мой вопрос теперь, как я мог, например, получить его только пост «имя» или только «имя» и «profileIconId»? Благодаря!

+0

Вы считаете, что значение ''hiimeric' известно или неизвестно вам? (Ответы до сих пор предполагают, что это известно.) Вы уверены, что будут возвращены значения только для одного пользователя? –

+0

Это просто словарь, содержащий другой словарь. Возможно, вы хотели [прочитать учебник по использованию словаря] (https://docs.python.org/3/tutorial/datastructures.html#dictionaries)? –

+1

Возможный дубликат [Доступ к элементам словаря python] (http://stackoverflow.com/questions/5404665/accessing-elements-of-python-dictionary) –

ответ

0

Объект JSON на самом деле представляет собой комбинацию словарей и списков. Таким образом, вы можете напечатать имя и profileIconId следующим:

print(r.json()['hiimeric']['name']) 
print(r.json()['hiimeric']['profileIconId']) 
0

объекты JSon два вида: dict и list. В этом случае это dictionary. Если вы хотите знать явно, используйте функцию type, как это.

obj = r.json() 
print(type(obj))