Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python으로 API 결과를 시각화하는 방법

<시간/>

소개..

API 작성의 가장 큰 장점 중 하나는 현재/라이브 데이터를 추출할 수 있다는 것입니다. 데이터가 빠르게 변경되더라도 API는 항상 최신 데이터를 얻을 수 있습니다. API 프로그램은 매우 구체적인 URL을 사용하여 특정 정보를 요청합니다. Spotify 또는 Youtube Music에서 2020년 가장 많이 재생된 노래 Top 100. 요청된 데이터는 JSON 또는 CSV와 같이 쉽게 처리되는 형식으로 반환됩니다.

Python을 사용하면 생각할 수 있는 거의 모든 URL에 대한 API 호출을 작성할 수 있습니다. 이 예에서는 GitHub에서 API 결과를 추출하고 시각화하는 방법을 보여줍니다.

참고 - 계획은 Spotify의 API 결과를 표시하는 것이었지만 Spotify는 1개 이상의 게시물이 필요할 수 있는 더 많은 전제 조건이 필요하므로 이 게시물에서는 GitHUb를 계속 사용합니다.

종종 개발자라고 불리는 Github Facebook에서는 다양한 데이터를 추출하기 위한 API 호출을 작성할 수 있습니다. 더 많은 별이 있는 Javascript Github 리포지토리를 검색하려고 한다고 가정합니다. GitHub는 API 키가 필요하지 않지만 다른 사람들은 필요할 수 있습니다.

그것을 하는 방법..

1. python 명령 프롬프트를 열고 pip 설치 요청을 실행하여 요청 패키지를 설치합니다.

import requests# set siteurlsite_url ='https://api.github.com/search/repositories?q=language:javascript&sort=stars'# headersheaders 설정 ={'Accept':'application/vnd.github. v3+json'}# URL을 호출하고 응답을 저장합니다.response =requests.get(site_url, headers=headers)# Get the responseprint(f"Output \n *** {site_url}의 응답은 {response.status_code} ") 

출력

*** https://api.github.com/search/repositories?q=language:javascript&sort=stars의 응답은 200입니다.

2. API는 JSON 형식으로 정보를 반환하므로 json() 메서드를 사용하여 정보를 Python 사전으로 변환해야 합니다.

response_json =response.json()print(f"출력 \n *** Json 파일의 키 \n {response_json.keys()} \n")print(f" *** GitHub의 총 자바스크립트 저장소 \n {response_json['total_count']}" )

출력

*** Json filedict_keys(['total_count', 'incomplete_results', 'items'])*** GitHub의 총 자바스크립트 저장소 수11199577
  • 따라서 incomplete_results를 무시할 수 있는 3개의 키가 있습니다. 이제 첫 번째 저장소를 살펴보겠습니다.

리포지토리 =response_json['items']first_repo =리포지토리[0]print(f"출력 \n *** 리포지토리 정보 키 총계 - {len(first_repo)} - 값은 -\n") 정렬된 키의 경우 (first_repo.keys()):print(keys)print(f" *** 저장소 이름 - {first_repo['name']}, 소유자 - {first_repo['owner']['login']}, 총 관찰자 - {first_repo['watchers_count']} ")

출력

 *** 저장소 키 정보 전체 - 74 - 값이다 -archive_urlarchivedassignees_urlblobs_urlbranches_urlclone_urlcollaborators_urlcomments_urlcommits_urlcompare_urlcontents_urlcontributors_urlcreated_atdefault_branchdeployments_urldescriptiondisableddownloads_urlevents_urlforkforksforks_countforks_urlfull_namegit_commits_urlgit_refs_urlgit_tags_urlgit_urlhas_downloadshas_issueshas_pageshas_projectshas_wikihomepagehooks_urlhtml_urlidissue_comment_urlissue_events_urlissues_urlkeys_urllabels_urllanguagelanguages_urllicensemerges_urlmilestones_urlmirror_urlnamenode_idnotifications_urlopen_issuesopen_issues_countownerprivatepulls_urlpushed_atreleases_urlscoresizessh_urlstargazers_countstargazers_urlstatuses_urlsubscribers_urlsubscription_urlsvn_urltags_urlteams_urltrees_urlupdated_aturlwatcherswatchers_count *** 저장소 이름 - freeCodeCamp 소유자 - freeCodeCamp 총 관찰자 - 316,079을  

4. 시각화의 시간, 소화해야 할 정보가 많기 때문에 가장 좋은 방법은 결과를 시각화하는 것입니다. 기억하십시오 - "한 장의 사진은 천 마디 말의 가치가 있습니다."

이미 다른 게시물에서 matplotlib를 다루었으므로 변경 사항을 위해 plotly를 사용하여 차트를 작성합니다.

  • 모듈을 설치하십시오. 먼저 plotly 가져오기를 시작하겠습니다.

plotly.graph_objs에서 가져오기 Barfrom plotly에서 오프라인으로 가져오기

6. 리포지토리 대 별 수로 막대 차트를 작성합니다. 별이 많을수록 저장소가 더 인기가 있습니다. 누가 정상에 있는지 확인하는 좋은 방법입니다. 따라서 두 개의 변수 저장소 이름과 별 수가 필요합니다.

[6]에서:

repo_names, repo_stars =[], []리포지토리의 repo_info용:repo_names.append(repo_info['name'])repo_stars.append(repo_info['stargazers_count'])

7. 데이터 목록을 준비하여 시각화를 시작합니다. 여기에는 플롯 유형을 정의하고 x 및 y 값에 대한 데이터를 제공하는 사전이 포함됩니다. 이미 짐작하셨겠지만, x축을 사용하여 프로젝트 이름을 그리고 y축을 사용하여 별을 그릴 것입니다.

data_plots =[{'유형':'막대', 'x':repo_names, 'y':repo_stars}]

8. x축, y축 및 차트 전체에 대한 제목을 추가합니다.

layout ={'title':'GItHubs 가장 인기 있는 자바스크립트 프로젝트','xaxis':{'title':'Repository'},'yaxis':{'title':'Stars'}}

9.계획할 시간입니다.

plotly.graph_objs에서 요청 가져오기 import Barfrom plotly import offlinesite_url ='https://api.github.com/search/repositories?q=language:javascript&sort=stars'headers ={'Accept':'application/vnd.github .v3+json'}response =requests.get(site_url, headers=headers)response_json =response.json()repo_names, repo_stars =[], []리포지토리의 repo_info용:repo_names.append(repo_info['name']) repo_stars.append(repo_info['stargazers_count'])data_plots =[{'type':'bar', 'x':repo_names, 'y':repo_stars}]layout ={'title':'GItHubs 가장 인기 있는 자바스크립트 프로젝트' ,'xaxis':{'title':'Repository'},'yaxis':{'title':'별'}}fig ={'data':data_plots, 'layout':layout}offline.plot(fig, filename='Most_Popular_JavaScript_Repos.html')

'Most_Popular_JavaScript_Repos.html'

출력

Most_Popular_JavaScript_Repos.html은 아래와 같이 출력되는 코드와 같은 디렉토리에 생성됩니다.

Python으로 API 결과를 시각화하는 방법