Dieser Artikel wurde als Artikel in kstm Adventskalender geschrieben.
API von Riot Games, dem Betreiber des Online-Spiels "League of Legends" (allgemein bekannt als LoL) Wenn Sie diese API verwenden, können Sie den Kampfrekord jedes Einzelnen oder Teams im JSON-Format abrufen. Dieses Mal werde ich versuchen, damit zu spielen.
Ich wünschte, ich könnte ein "etwas cooles" Profilbild (wie ein Twitter-Header-Bild) unter Verwendung der Schlachtrekorddaten von Ranglistenschlachten erstellen.
Bedingung: Sie haben ein LoL-Konto auf einem von Riot Games betriebenen Server https://developer.riotgames.com/ Wenn Sie zu API DOCUMENTATION-> FULL API REFERENCE springen, gibt es verschiedene APIs, und wenn Sie ein beliebiges Argument angeben, wird JSON zurückgegeben. Wenn Sie darauf zugreifen möchten, benötigen Sie den jedem Konto zugewiesenen API-Schlüssel. Überprüfen Sie ihn daher im Dashboard.
lib.py
import urllib.request as urllib2
import json
Ich war süchtig nach "importieren", da es "urllib2" ist. Als ich es nachgeschlagen habe, scheint es, dass die gleiche Funktion mit "urllib.request" in "python3" erhalten werden kann, also werde ich dies als "urllib2" "importieren"
getSummID.py
SUM_NAME = "sumname" #Name des Beschwörers Ändern Sie ihn in einen beliebigen Namen
SUMMONER_V14 = "https://jp.api.pvp.net/api/lol/jp/v1.4/summoner/by-name/"
API_KEY = "api_key=XXXXXXXXXXXXXXXX" #Ändern Sie es in Ihren eigenen API-Schlüssel
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()
Die hier verwendete API ist summoner-v1.4
. Wenn Sie sie tatsächlich erhalten, gibt sie ein Objekt des unteren Summoner-Namenstyps zurück. In diesem Objekt werden die Beschwörer-ID, die Profilsymbol-ID usw. gespeichert. Da die Beschwörer-ID erforderlich ist, um die Schlachtdatensatzdaten abzurufen, versuchen Sie, auf die ID wie "root [SUM_NAME.lower ()] [" id "]" zuzugreifen und diese abzurufen.
Wenn Sie meinen Beschwörernamen verwenden und "6300501" sehen, sind Sie erfolgreich.
Diese Beschwörer-ID ist sehr wichtig, und Sie werden diese ID verwenden, um die mit dem Spieler verknüpften Daten abzurufen, z. B. die Kampfaufzeichnung.
Die hier verwendete API ist stats-v1.3
. Diese API erhält nicht die Daten für jedes Spiel, sondern die Daten für jeden Champion. Lassen Sie uns eine Liste der Kampfaufzeichnungen für jeden Champion anzeigen.
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("Champion ID:" + str(champion["id"]) + "Der Kampfrekord von" + str(stats["totalSessionsWon"]) + "Sieg" + str(stats["totalSessionsLost"]) + "Ist besiegt")
finally:
r.close()
Wenn Sie versuchen, es zu bekommen, können Sie "SummonerID", "ModifyData" und "Champions List" erhalten. Wie oben erwähnt, kann diese API den Kampfrekord für jeden Champion abrufen, und die Daten werden im "Statistikobjekt" in der "Championsliste" gespeichert. Wenn Sie also die for-Anweisung verwenden, um die Anzahl der Gewinne und Verluste zu ermitteln und anzuzeigen, sieht dies wie folgt aus.
`Champion ID: 42 hat einen Rekord von 1 Sieg und 1 Niederlage Champion ID: 3 hat einen Rekord von 0 Siegen und 1 Niederlage Champion ID: 4 hat einen Rekord von 1 Sieg und 6 Niederlagen ... Champion ID: 0 hat einen Rekord von 22 Siegen und 28 Niederlagen Diese Champion-ID ist die jedem Champion zugewiesene ID, und der Champion-Name kann auch erhalten werden, indem er den beim nächsten Mal erläuterten statischen Daten zugeordnet wird. Übrigens ist diese Champion-ID: 0 die Gesamtdaten der Kampfaufzeichnungen aller Champions.
Es wird lange dauern, also wird es dieses Mal in der zweiten Hälfte fortgesetzt (ich möchte fortfahren)
Recommended Posts