Apex Legends의 API w/Python
18632 단어 파이썬apexlegendsapi
소개
이 기사에서는 Python을 사용하여 TRACKER NETWORK 의 API를 두드려 APEX 통계를 얻는 방법을 설명합니다.
참고
목차
TRACKER NETWORK API 설정
등록
먼저 API를 사용하려면 TRACKER NETWORK에 등록합니다.
사용자 이름 (선택 사항)과 메드, 비밀번호를 입력하여 등록
애플리케이션 만들기
등록이 완료되면 다음에 API를 활용하기 위한 애플리케이션 생성
로그인 후 톱 페이지의 Developers 탭 또는 에서 애플리케이션 작성 페이지로 이동하여 Create Application
htps // t 등 c r. ㅇ / ゔ ぇぺぺ rs / ps
작성 화면에서 애플리케이션의 이름, 설명, 목적을 작성하여 Create app
API 키 확인
작성한 애플리케이션 세부정보에서 API Key를 찾아 메모
파이썬으로 API를 두드리는
API 키를 사용할 수 있었으므로 다음은 Python에서 API를 두드려 보겠습니다.
API를 두드리는 방법
파이썬에서는 REST API를 두드리는 데 유용한 requests
라는 라이브러리가 있으므로 그것을 사용합니다.
url과 headers를 지정하여 API를 치십시오.
이번에는 Apex 정보를 원하기 때문에 https://public-api.tracker.gg/v2/apex/standard/profile/{platform}/{user}
부분에 플랫폼 (Origin, PS, XBOX)과 Apex 사용자 이름을 넣어 Apex 통계에 액세스합니다.
JSON 처리
API를 두드려 돌아오는 결과는 JSON 형식이므로 Python에서 다룰 수 있도록 json
라이브러리 사용
코드
Apex_api.pyimport requests, json, os
from pprint import pprint
url = "https://public-api.tracker.gg/v2/apex/standard/profile/origin/SIN_HA_JECHT_DA"
header = {"TRN-Api-Key":os.environ['TRN_API_KEY']}#環境変数から読み込むようにしてる
res = requests.get(url, headers=header).json()
pprint(res)
결과
결과가 너무 길기 때문에 일부 발췌
{'data': {'availableSegments': [{'attributes': {},
'metadata': {},
'type': 'legend'}],
'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
'metadata': {'activeLegend': 'legend_15',
'activeLegendName': 'Horizon',
'activeLegendStats': None,
'currentSeason': 2},
'platformInfo': {'additionalParameters': None,
'avatarUrl': 'https://secure.download.dm.origin.com/production/avatar/prod/userAvatar/33294085/416x416.PNG',
'platformSlug': 'origin',
'platformUserHandle': 'SIN_HA_JECHT_DA',
'platformUserId': 'SIN_HA_JECHT_DA',
'platformUserIdentifier': 'SIN_HA_JECHT_DA'},
'segments': [{'attributes': {},
'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
'metadata': {'name': 'Lifetime'},
'stats': {'damage': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Damage',
'displayType': 'Unspecified',
'displayValue': '159,116',
'metadata': {},
'percentile': 50.0,
'rank': None,
'value': 159116.0},
'headshots': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Headshots',
'displayType': 'Unspecified',
'displayValue': '164',
'metadata': {},
'percentile': 25.0,
'rank': None,
'value': 164.0},
'kills': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Kills',
'displayType': 'Unspecified',
'displayValue': '1,060',
'metadata': {},
'percentile': 79.0,
'rank': None,
'value': 1060.0},
'level': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Level',
'displayType': 'Unspecified',
'displayValue': '295',
'metadata': {},
'percentile': 84.0,
'rank': None,
'value': 295.0},
'rankScore': {'category': None,
'displayCategory': 'Game',
'displayName': 'Rank Score',
'displayType': 'Unspecified',
'displayValue': '4,828',
'metadata': {'iconUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/ranks/platinum4.png',
'rankName': 'Platinum '
'4'},
'percentile': None,
'rank': None,
'value': 4828.0},
유용한 데이터가있는 것은 segments
이 이후에는 전설별 정보가 적혀 있습니다.
여러가지 봐
중첩된 JSON은 사전과 마찬가지로 각 요소에 액세스합니다.segments
는 목록에 있으며 [0]
에는 전체 계정 킬 수와 같은 정보가 있습니다.
이후에는 각 레전드마다의 정보가 있다(레전드의 순서는 부동)
res['data']['segments'][0]['stats']['rankScore']
이것으로 순위 정보를 얻을 수 있습니다.value
가 랭크 포인트로 metadata
에는 랭크의 위치가 써 있다
나는 백금 4입니다 (영원히)
{'category': None,
'displayCategory': 'Game',
'displayName': 'Rank Score',
'displayType': 'Unspecified',
'displayValue': '4,828',
'metadata': {'iconUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/ranks/platinum4.png',
'rankName': 'Platinum 4'},
'percentile': None,
'rank': None,
'value': 4828.0}
res['data']['segments'][6]
이것은 내가 가장 많이 사용하는 Horizon 정보입니다.
{'attributes': {'id': 'legend_15'},
'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
'metadata': {'bgImageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-concept-bg-small.jpg',
'imageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-tile.png',
'isActive': True,
'name': 'Horizon',
'tallImageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-tall.png'},
'stats': {'kills': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Kills',
'displayType': 'Unspecified',
'displayValue': '504',
'metadata': {},
'percentile': 94.0,
'rank': None,
'value': 504.0},
'season7Kills': {'category': None,
'displayCategory': 'Game',
'displayName': 'Season 7 Kills',
'displayType': 'Unspecified',
'displayValue': '402',
'metadata': {},
'percentile': 86.0,
'rank': None,
'value': 402.0},
'season7Wins': {'category': None,
'displayCategory': 'Game',
'displayName': 'Season 7 Wins',
'displayType': 'Unspecified',
'displayValue': '17',
'metadata': {},
'percentile': 83.0,
'rank': None,
'value': 17.0},
'ultimateEnemyDamage': {'category': None,
'displayCategory': 'Game',
'displayName': 'Ultimate Enemy Damage',
'displayType': 'Unspecified',
'displayValue': '3,707',
'metadata': {},
'percentile': 71.0,
'rank': None,
'value': 3707.0}},
'type': 'legend'}
500킬 정도
끝
Reference
이 문제에 관하여(Apex Legends의 API w/Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hayapo/items/2ade5e149f98ec19afc1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
API 키를 사용할 수 있었으므로 다음은 Python에서 API를 두드려 보겠습니다.
API를 두드리는 방법
파이썬에서는 REST API를 두드리는 데 유용한
requests
라는 라이브러리가 있으므로 그것을 사용합니다.url과 headers를 지정하여 API를 치십시오.
이번에는 Apex 정보를 원하기 때문에
https://public-api.tracker.gg/v2/apex/standard/profile/{platform}/{user}
부분에 플랫폼 (Origin, PS, XBOX)과 Apex 사용자 이름을 넣어 Apex 통계에 액세스합니다.JSON 처리
API를 두드려 돌아오는 결과는 JSON 형식이므로 Python에서 다룰 수 있도록
json
라이브러리 사용코드
Apex_api.py
import requests, json, os
from pprint import pprint
url = "https://public-api.tracker.gg/v2/apex/standard/profile/origin/SIN_HA_JECHT_DA"
header = {"TRN-Api-Key":os.environ['TRN_API_KEY']}#環境変数から読み込むようにしてる
res = requests.get(url, headers=header).json()
pprint(res)
결과
결과가 너무 길기 때문에 일부 발췌
{'data': {'availableSegments': [{'attributes': {},
'metadata': {},
'type': 'legend'}],
'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
'metadata': {'activeLegend': 'legend_15',
'activeLegendName': 'Horizon',
'activeLegendStats': None,
'currentSeason': 2},
'platformInfo': {'additionalParameters': None,
'avatarUrl': 'https://secure.download.dm.origin.com/production/avatar/prod/userAvatar/33294085/416x416.PNG',
'platformSlug': 'origin',
'platformUserHandle': 'SIN_HA_JECHT_DA',
'platformUserId': 'SIN_HA_JECHT_DA',
'platformUserIdentifier': 'SIN_HA_JECHT_DA'},
'segments': [{'attributes': {},
'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
'metadata': {'name': 'Lifetime'},
'stats': {'damage': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Damage',
'displayType': 'Unspecified',
'displayValue': '159,116',
'metadata': {},
'percentile': 50.0,
'rank': None,
'value': 159116.0},
'headshots': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Headshots',
'displayType': 'Unspecified',
'displayValue': '164',
'metadata': {},
'percentile': 25.0,
'rank': None,
'value': 164.0},
'kills': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Kills',
'displayType': 'Unspecified',
'displayValue': '1,060',
'metadata': {},
'percentile': 79.0,
'rank': None,
'value': 1060.0},
'level': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Level',
'displayType': 'Unspecified',
'displayValue': '295',
'metadata': {},
'percentile': 84.0,
'rank': None,
'value': 295.0},
'rankScore': {'category': None,
'displayCategory': 'Game',
'displayName': 'Rank Score',
'displayType': 'Unspecified',
'displayValue': '4,828',
'metadata': {'iconUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/ranks/platinum4.png',
'rankName': 'Platinum '
'4'},
'percentile': None,
'rank': None,
'value': 4828.0},
유용한 데이터가있는 것은
segments
이 이후에는 전설별 정보가 적혀 있습니다.여러가지 봐
중첩된 JSON은 사전과 마찬가지로 각 요소에 액세스합니다.
segments
는 목록에 있으며 [0]
에는 전체 계정 킬 수와 같은 정보가 있습니다.이후에는 각 레전드마다의 정보가 있다(레전드의 순서는 부동)
res['data']['segments'][0]['stats']['rankScore']
이것으로 순위 정보를 얻을 수 있습니다.
value
가 랭크 포인트로 metadata
에는 랭크의 위치가 써 있다나는 백금 4입니다 (영원히)
{'category': None,
'displayCategory': 'Game',
'displayName': 'Rank Score',
'displayType': 'Unspecified',
'displayValue': '4,828',
'metadata': {'iconUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/ranks/platinum4.png',
'rankName': 'Platinum 4'},
'percentile': None,
'rank': None,
'value': 4828.0}
res['data']['segments'][6]
이것은 내가 가장 많이 사용하는 Horizon 정보입니다.
{'attributes': {'id': 'legend_15'},
'expiryDate': '2021-02-12T14:36:57.1605506+00:00',
'metadata': {'bgImageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-concept-bg-small.jpg',
'imageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-tile.png',
'isActive': True,
'name': 'Horizon',
'tallImageUrl': 'https://trackercdn.com/cdn/apex.tracker.gg/legends/horizon-tall.png'},
'stats': {'kills': {'category': None,
'displayCategory': 'Combat',
'displayName': 'Kills',
'displayType': 'Unspecified',
'displayValue': '504',
'metadata': {},
'percentile': 94.0,
'rank': None,
'value': 504.0},
'season7Kills': {'category': None,
'displayCategory': 'Game',
'displayName': 'Season 7 Kills',
'displayType': 'Unspecified',
'displayValue': '402',
'metadata': {},
'percentile': 86.0,
'rank': None,
'value': 402.0},
'season7Wins': {'category': None,
'displayCategory': 'Game',
'displayName': 'Season 7 Wins',
'displayType': 'Unspecified',
'displayValue': '17',
'metadata': {},
'percentile': 83.0,
'rank': None,
'value': 17.0},
'ultimateEnemyDamage': {'category': None,
'displayCategory': 'Game',
'displayName': 'Ultimate Enemy Damage',
'displayType': 'Unspecified',
'displayValue': '3,707',
'metadata': {},
'percentile': 71.0,
'rank': None,
'value': 3707.0}},
'type': 'legend'}
500킬 정도
끝
Reference
이 문제에 관하여(Apex Legends의 API w/Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hayapo/items/2ade5e149f98ec19afc1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Apex Legends의 API w/Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hayapo/items/2ade5e149f98ec19afc1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)