La dernière fois, j'ai regardé le contenu des données un par un, donc cette fois je voudrais en extraire uniquement les données que je veux. (Cliquez ici pour l'article précédent https://qiita.com/mattya_527/items/d9861db5e129d92c1637)
Au 1er février 2020 OS:windows10 Anaconda:4.8.1 python:3.7.6
Les données que je veux cette fois sont le nombre de victoires et de pertes, le nombre de victimes, le nombre de morts, le nombre de passes décisives, le taux d'implication des victimes, le champion utilisé, le champion qui a joué, le couloir, le CS, l'or gagné, les dégâts infligés au champion, le temps du match. Aller. Le mode de jeu est réduit au rang.
En regardant ce que j'ai vérifié la dernière fois,
article | Nom de l'objet | Moule |
---|---|---|
Gagner ou perdre | win | bool |
Nombre de victimes | kills | int |
Nombre de décès | deaths | int |
Nombre de passes | assists | int |
champion | championId | int |
voie | lane, role | str |
CS | totalMinionsKilled | int |
Gagner de l'or | goldEarned | int |
Dommages au champion | magicDamageDealtToChampions,physicalDamageDealtToChampions,total de trueDamageDealtToChampions | int |
Temps de jeu | gameDuration | int |
S'il s'agit d'un jeu classé | queueId=420 | int |
Tout d'abord, donnez les noms à chacun pour limiter les joueurs à vous-même.
for i in range(10):
match_data["participantIdentities"][i]["player"]
print(match_data["participantIdentities"][i]["player"]["summonerName"])
(Pour le moment, le SN des autres personnes est caché.)
Vous pouvez voir que pour vous limiter uniquement, vous pouvez juger s'il correspond à celui défini par le nom la dernière fois.
for i in range(10):
if match_data["participantIdentities"][i]["player"]["summonerName"] == name: #Le nom de l'invocateur correspond-il?
par_Id = match_data["participants"][i]["participantId"]
print(par_Id) #Sortie participantId
#par_Sortir les données qui correspondent à l'ID
if match_data["participants"][par_Id-1]["stats"]["participantId"] == par_Id: #par_Id-1 correspond à l'index
print(match_data["participants"][par_Id-1]["stats"]["win"]) #Gagner ou perdre
print(match_data["participants"][par_Id-1]["stats"]["kills"]) #Nombre de victimes
print(match_data["participants"][par_Id-1]["stats"]["deaths"]) #Nombre de décès
print(match_data["participants"][par_Id-1]["stats"]["assists"]) #Nombre de passes
print(match_data["participants"][par_Id-1]["championId"]) #Champion utilisé
print(match_data["participants"][par_Id-1]["timeline"]["lane"]) #voie
print(match_data["participants"][par_Id-1]["timeline"]["role"]) #rouleau
print(match_data["participants"][par_Id-1]["stats"]["totalMinionsKilled"]) #CS **Y a-t-il autre chose que les sbires et le fluage de la jungle qui est nécessaire pour CS car ce n'est pas suffisant pour CS vu dans OPGG?
print(match_data["participants"][par_Id-1]["stats"]["goldEarned"]) #Gagner de l'or
print(match_data["participants"][par_Id-1]["stats"]["magicDamageDealtToChampions"] + match_data["participants"][par_Id-1]["stats"]["physicalDamageDealtToChampions"] + match_data["participants"][par_Id-1]["stats"]["trueDamageDealtToChampions"]) #Dommages au champion
print(match_data["participants"][par_Id-1]["teamId"]) #100 est le côté bleu, 200 est le côté rouge
print(match_data["gameDuration"]) #Temps de jeu(Secondes)
Je veux me limiter aux matchs classés, je vais donc porter ce jugement. Rank a queueId 420, donc
if match_data["queueId"] == 420:
Cela peut être identifié. La raison pour laquelle je veux affiner le classement est qu'à moins qu'il ne s'agisse d'un jeu de classement, les rouleaux et les voies seront AUCUN et je ne peux pas collecter les données souhaitées.
Cette fois, j'ai pu obtenir les informations que je voulais en récupérant les données de mon seul match. Ensuite, je voudrais télécharger ces données dans la base de données. C'est pourquoi je vais étudier la base de données et recommencer.
Recommended Posts