Cet article a été écrit sous forme d'article dans kstm Advent Calendar
API fournie par Riot Games, l'opérateur du jeu en ligne "League of Legends" (communément appelé LoL) Si vous utilisez cette API, vous pouvez extraire le record de bataille de chaque individu ou équipe au format JSON, donc cette fois je vais essayer de jouer avec.
Ce serait bien si nous pouvions créer une image de profil "plutôt cool" (comme une image d'en-tête Twitter) en utilisant les données d'enregistrement des batailles classées.
Condition: Vous disposez d'un compte LoL sur un serveur exploité par Riot Games https://developer.riotgames.com/ Si vous passez à DOCUMENTATION API-> RÉFÉRENCE API COMPLÈTE, il existe différentes API et si vous donnez un argument arbitraire, JSON sera renvoyé. Si vous voulez l'atteindre, vous avez besoin de la clé API attribuée à chaque compte, alors vérifiez-la sur le tableau de bord.
lib.py
import urllib.request as urllib2
import json
J'étais accro à ʻimport car c'est ʻurllib2
, donc quand je l'ai recherché, il semble que la même fonction puisse être obtenue en utilisant ʻurllib.request dans
python3, donc je vais ʻimport
ceci comme ʻurllib2`
getSummID.py
SUM_NAME = "sumname" #Nom de l'invocateur Changez-le en celui que vous voulez
SUMMONER_V14 = "https://jp.api.pvp.net/api/lol/jp/v1.4/summoner/by-name/"
API_KEY = "api_key=XXXXXXXXXXXXXXXX" #Changez-le en votre propre clé API
try:
s = urllib2.urlopen(SUMMONER_V14 + SUM_NAME + '?' + API_KEY)
summ = json.loads(s.read().decode('utf-8'))
SUM_ID = summ[SUM_NAME.lower()]["id"]
print(SUM_ID)
finally:
s.close()
L'API utilisée ici est summoner-v1.4
Lorsque vous l'obtenez réellement, elle renvoie un objet du type de nom d'invocateur inférieur. L'ID d'invocateur, l'ID d'icône de profil, etc. sont stockés dans cet objet. Puisque l'ID d'invocateur est requis pour obtenir les données d'enregistrement de bataille, essayez d'accéder et d'obtenir l'ID comme root [SUM_NAME.lower ()] [" id "]
.
Si vous utilisez mon nom d'invocateur et que vous voyez «6300501», vous réussissez.
Cet identifiant d'invocateur est très important et vous utiliserez cet identifiant pour obtenir les données associées au joueur telles que le record de bataille.
L'API utilisée ici est stats-v1.3
Cette API n'obtient pas les données pour chaque match, mais les données pour chaque champion. Affiche une liste des records de bataille pour chaque champion.
getRankedStats.py
try:
r = urllib2.urlopen(RANKED_STATS_V13 + '?' + SEASON + '&' +API_KEY)
ranked = json.loads(r.read().decode('utf-8'))
champions = ranked['champions']
for champion in champions:
stats = champion["stats"]
print("Identifiant de champion:" + str(champion["id"]) + "Le record de bataille de" + str(stats["totalSessionsWon"]) + "Gagner" + str(stats["totalSessionsLost"]) + "Est vaincu")
finally:
r.close()
Si vous essayez de l'obtenir, vous pouvez obtenir summonerID
, modifyData
et champions list
. Comme mentionné ci-dessus, cette API peut obtenir le record de bataille pour chaque champion, et les données sont stockées dans «l'objet stats» dans la «liste des champions». Donc, si vous utilisez l'instruction for pour obtenir le nombre de victoires et de pertes et l'afficher, ce sera comme suit.
`Champion id: 42 a un record de 1 victoire et 1 défaite ID de champion: 3 a un record de 0 victoire et 1 défaite Champion id: 4 a un record de 1 victoire et 6 défaites ... Champion id: 0 a un record de 22 victoires et 28 défaites. Cet identifiant de champion est l'identifiant attribué à chaque champion, et le nom du champion peut également être obtenu en l'associant aux données statiques expliquées la prochaine fois. À propos, cet identifiant de champion: 0 est le total des données des records de bataille de tous les champions.
Ça va être long, donc cette fois ça va continuer en seconde période (je veux continuer)