В настоящее время я работаю над проектом, который включает в себя получение данных из API RiotGames и будет предлагать некоторую помощь в этой проблеме, которую я, похоже, не могу решить.Как я могу назвать конкретные данные json?
Код:
import requests
r = requests.get(url="https://na.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/7250/ranked?season=SEASON2016&api_key=ABC420")
json_data = r.json()
get_summoner_data = (json_data["champions"])
print(get_summoner_data)
И это является ответом
{"summonerId":7250,"modifyDate":1479970436000,"champions":[{"id":111,"stats":{"totalSessionsPlayed":2,"totalSessionsLost":2,"totalSessionsWon":0,"totalChampionKills":8,"totalDamageDealt":211063,"totalDamageTaken":42772,"mostChampionKillsPerSession":7,"totalMinionKills":318,"totalDoubleKills":1,"totalTripleKills":0,"totalQuadraKills":0,"totalPentaKills":0,"totalUnrealKills":0,"totalDeathsPerSession":15,"totalGoldEarned":21574,"mostSpellsCast":0,"totalTurretsKilled":1,"totalPhysicalDamageDealt":33376,"totalMagicDamageDealt":174433,"totalFirstBlood":0,"totalAssists":11,"maxChampionsKilled":7,"maxNumDeaths":8}},{"id":110,"stats":{"totalSessionsPlayed":3,"totalSessionsLost":3,"totalSessionsWon":0,"totalChampionKills":12,"totalDamageDealt":463303,"totalDamageTaken":49704,"mostChampionKillsPerSession":8,"totalMinionKills":675,"totalDoubleKills":0,"totalTripleKills":0,"totalQuadraKills":0,"totalPentaKills":0,"totalUnrealKills":0,"totalDeathsPerSession":15,"totalGoldEarned":35203,"mostSpellsCast":0,"totalTurretsKilled":2,"totalPhysicalDamageDealt":438295,"totalMagicDamageDealt":22391,"totalFirstBlood":0,"totalAssists":28,"maxChampionsKilled":8,"maxNumDeaths":6}}
Так respone в основном данные производительности игроков с различными чемпионами, в этом случае, определяемом их идентификаторами.
Но скажем, кто-то играет в чемпиона с идентификатором 111, теперь я хочу, чтобы все данные были подключены к этому идентификатору, а затем можно распечатать определенные части, например: MaxDeaths и MaxGold.
Но если данных для этого идентификатора не найдено, у меня было бы сообщение типа «Данные не найдены».
Как вы можете видеть здесь, есть данные для идентификатора чемпиона 111, но как я могу позвонить, чтобы получить только эти данные?
Боковое примечание для лучшего понимания: Игрок находится в игре с 10 другими игроками, по 5 на каждую команду. Каждый человек играет разных чемпионов. Я хочу посмотреть, имеет ли игрок какой-либо предшествующий опыт с этим чемпионом (все эти данные), и поэтому проверяет, находится ли идентификатор чемпиона в сводке. Если это так, я буду использовать эти данные, чтобы провести какой-то анализ производительности.
Большое спасибо! Один последний вопрос, как бы я пошел, если бы хотел напечатать больше, чем просто maxNumDeaths, ex print (i ['stats'] ["maxNumDeaths"] ["totalSessionsWon"]) дает мне TypeError "int" объект не подстрочный номер " –
, вы не можете вызывать' print (i ["stats"] ["maxNumDeaths"] ["totalSessionsWon"]) ', потому что такого узла нет. если вы хотите «totalSessionsWon», вы можете вызвать «print (i [" stats "] [" totalSessionsWon "]' –