परिचय..
एपीआई लिखने का एक सबसे बड़ा लाभ वर्तमान/लाइव डेटा निकालना है, भले ही डेटा तेजी से बदल रहा हो, एक एपीआई हमेशा अद्यतित डेटा प्राप्त करेगा। कुछ जानकारी का अनुरोध करने के लिए एपीआई प्रोग्राम बहुत विशिष्ट यूआरएल का उपयोग करेंगे उदा। Spotify या Youtube Music में 2020 के टॉप 100 सबसे ज्यादा बजाए जाने वाले गाने। अनुरोधित डेटा आसानी से संसाधित प्रारूप में लौटा दिया जाएगा, जैसे कि JSON या CSV।
पायथन उपयोगकर्ता को लगभग किसी भी यूआरएल पर एपीआई कॉल लिखने की अनुमति देता है जिसके बारे में आप सोच सकते हैं। इस उदाहरण में मैं दिखाऊंगा कि गिटहब से एपीआई परिणाम कैसे निकालें और उनकी कल्पना कैसे करें।
नोट - योजना Spotify से API परिणाम दिखाने की थी, लेकिन Spotify को अधिक पूर्व-आवश्यकताओं की आवश्यकता है जिसके लिए 1 से अधिक पोस्ट की आवश्यकता हो सकती है, इसलिए हम इस पोस्ट के लिए GitHUb के साथ रहेंगे।
जीथब, जिसे अक्सर डेवलपर्स के रूप में जाना जाता है, फेसबुक हमें विभिन्न प्रकार के डेटा निकालने के लिए एपीआई कॉल लिखने की अनुमति देता है। मान लें कि आप अधिक सितारों के साथ Javascript Github रिपॉजिटरी खोजना चाहते हैं। गिटहब को एपीआई कुंजी की आवश्यकता नहीं है जबकि अन्य चाहें।
इसे कैसे करें..
1.पायथन कमांड प्रॉम्प्ट खोलकर और पाइप इंस्टाल अनुरोधों को सक्रिय करके अनुरोध पैकेज स्थापित करें।
import requests # set the siteurl site_url = 'https://api.github.com/search/repositories?q=language:javascript&sort=stars' # set the headers headers = {'Accept': 'application/vnd.github.v3+json'} # call the url and save the response response = requests.get(site_url, headers=headers) # Get the response print(f"Output \n *** Response from {site_url} is {response.status_code} ")
आउटपुट
*** Response from https://api.github.com/search/repositories?q=language:javascript&sort=stars is 200
2.एपीआई जेएसओएन प्रारूप में जानकारी देता है, इसलिए हमें जानकारी को पायथन डिक्शनरी में बदलने के लिए जेसन() विधि का उपयोग करने की आवश्यकता है।
उदाहरण
response_json = response.json() print(f"Output \n *** keys in the Json file \n {response_json.keys()} \n") print(f" *** Total javascript repositories in GitHub \n {response_json['total_count']}" )
आउटपुट
*** keys in the Json file dict_keys(['total_count', 'incomplete_results', 'items']) *** Total javascript repositories in GitHub 11199577में कुल जावास्क्रिप्ट रिपॉजिटरी
-
तो, हमारे पास 3 कुंजियाँ हैं जिनमें से हम अपूर्ण_परिणामों को अनदेखा कर सकते हैं। आइए अब अपने पहले भंडार की जांच करें।
उदाहरण
repositories = response_json['items'] first_repo = repositories[0] print(f"Output \n *** Repository information keys total - {len(first_repo)} - values are -\n") for keys in sorted(first_repo.keys()): print(keys) print(f" *** Repository name - {first_repo['name']}, Owner - {first_repo['owner']['login']}, total watchers - {first_repo['watchers_count']} ")
आउटपुट
*** Repository information keys total - 74 - values are - archive_url archived assignees_url blobs_url branches_url clone_url collaborators_url comments_url commits_url compare_url contents_url contributors_url created_at default_branch deployments_url description disabled downloads_url events_url fork forks forks_count forks_url full_name git_commits_url git_refs_url git_tags_url git_url has_downloads has_issues has_pages has_projects has_wiki homepage hooks_url html_url id issue_comment_url issue_events_url issues_url keys_url labels_url language languages_url license merges_url milestones_url mirror_url name node_id notifications_url open_issues open_issues_count owner private pulls_url pushed_at releases_url score size ssh_url stargazers_count stargazers_url statuses_url subscribers_url subscription_url svn_url tags_url teams_url trees_url updated_at url watchers watchers_count *** Repository name - freeCodeCamp, Owner - freeCodeCamp, total watchers - 316079
4. विज़ुअलाइज़ेशन का समय, पचाने के लिए बहुत सारी जानकारी है, इसलिए परिणामों की कल्पना करना सबसे अच्छा तरीका है। याद रखें - "एक तस्वीर एक हजार शब्दों के बराबर होती है"।
मैं पहले से ही अन्य पदों में matplotlib को कवर कर चुका हूं, इसलिए बदलाव के लिए हम प्लॉटली का उपयोग करके चार्ट करेंगे।
-
मॉड्यूल स्थापित करें - प्लॉटली। हम प्लॉटली इंपोर्ट करना शुरू करेंगे।
उदाहरण
from plotly.graph_objs import Bar from plotly import offline
6. हम भंडार बनाम सितारों की संख्या के साथ एक बार चार्ट करेंगे। जितने अधिक सितारे उतने ही लोकप्रिय भंडार हैं। यह देखने का अच्छा तरीका है कि शीर्ष पर कौन है। तो, हमें दो चर भंडार नाम और सितारों की संख्या की आवश्यकता है।
इन[6]:
उदाहरण
repo_names, repo_stars = [], [] for repo_info in repositories: repo_names.append(repo_info['name']) repo_stars.append(repo_info['stargazers_count'])
7. डेटा सूची तैयार करके विज़ुअलाइज़ेशन शुरू करें। इसमें एक शब्दकोश है, जो प्लॉट के प्रकार को परिभाषित करता है और x- और y-मानों के लिए डेटा प्रदान करता है। आप पहले ही अनुमान लगा चुके होंगे, हाँ हम प्रोजेक्ट के नाम प्लॉट करने के लिए x-अक्ष का उपयोग करेंगे और सितारों को प्लॉट करने के लिए y-अक्ष का उपयोग करेंगे।
उदाहरण
data_plots = [{'type' : 'bar', 'x':repo_names , 'y': repo_stars}]
8. हम x-अक्ष, y-अक्ष और संपूर्ण चार्ट के लिए शीर्षक जोड़ेंगे।
उदाहरण
layout = {'title': 'GItHubs Most Popular Javascript Projects', 'xaxis': {'title': 'Repository'}, 'yaxis': {'title': 'Stars'}}
9.साजिश रचने का समय।
import requests from plotly.graph_objs import Bar from plotly import offline site_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 = [], [] for repo_info in repositories: 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 Most Popular Javascript Projects', 'xaxis': {'title': 'Repository'}, 'yaxis': {'title': 'Stars'}} 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 उसी डायरेक्टरी में बनाया जाएगा जिसमें नीचे आउटपुट वाला कोड होगा।