प्रत्येक देश के नाम के साथ एक शब्दकोश की कुंजी भरने के लिए एक एपीआई का उपयोग करने की कोशिश कर रहा है। मैं मूल्यों में भर दूंगा। हर देश में मैन्युअल रूप से टाइप करने के विरोध में समय बचाने की कोशिश करना। यहां देशों के साथ एक लिंक दिया गया है https://www.dfa .ie/travel/travel-advice/az-list-of-countries/
मेरे पास वर्तमान में जो प्रारूप है वह नीचे है ..
import requests
response = requests.get("https://www.dfa.ie/travel/travel-advice/a-z-list-of-countries/")
print(response.status_code)
print(response.json())
2 जवाब
मुद्दा यह है कि URL एक HTML दस्तावेज़ देता है न कि JSON ऑब्जेक्ट। मैं एक और एपीआई एंडपॉइंट का उपयोग करने का सुझाव देता हूं जो एक जेसन ऑब्जेक्ट देता है जिसे आप सीधे पाइथन में उपयोग कर सकते हैं, बिना स्क्रैपिंग और सभी के।
import requests
response = requests.get("https://restcountries.eu/rest/v2/all")
print(response.status_code)
all_ = response.json()
यहां all_
में नाम, कैपिटल, टॉपलेवल डोमेन, बॉर्डर, टाइमज़ोन, और कई अन्य सुविधाओं के साथ सभी देशों की एक सरणी है। आप सूची में प्रत्येक देश तक पहुँचने के लिए लूप के लिए उपयोग कर सकते हैं और यदि आवश्यक हो तो उसके नाम और अन्य डेटा तक पहुँच प्राप्त कर सकते हैं। फिर इसे अपने शब्दकोश में संग्रहीत करें।
एपीआई एंडपॉइंट दस्तावेज़: https://restcountries.eu/#api-endpoints-all
आप इस उद्देश्य के लिए शब्दकोश समझ का उपयोग कर सकते हैं:
my_countries = {x['name']: "your intended values" for x in all_}
आप अपने मान "your intended values"
के स्थान पर रख सकते हैं। यह एक अन्य अजगर वस्तु, तानाशाही, सूची या कोई अन्य प्रकार भी हो सकता है। my_countries
आपका परिणामी निर्देश होगा।
my_countries = {x['name']: "your intended values" for x in all_}
। आप अपने मान "your intended values"
के स्थान पर रख सकते हैं। यह एक अन्य अजगर वस्तु, तानाशाही, सूची या कोई अन्य प्रकार भी हो सकता है। my_countries
आपका परिणामी निर्देश होगा...
"your intended values"
के बजाय बस अपने स्वयं के मान जोड़ें। साथ ही, अगर यह काम कर रहा है तो क्या आप डाउनवोट हटा सकते हैं ...?
मेरा सुझाव है कि आप HTML को पार्स करना आसान बनाने के लिए सुंदर सूप का उपयोग करें। यदि आप अकेले अनुरोधों का उपयोग करते हैं, तो देश के नाम प्राप्त करने के लिए बहुत सी स्ट्रिंग पार्सिंग की जानी है। यहाँ एक उदाहरण है:
import requests
from bs4 import BeautifulSoup, Comment, NavigableString
response = requests.get("https://www.dfa.ie/travel/travel-advice/a-z-list-of-countries/")
# Parse response html
soup = BeautifulSoup(response.text, 'html.parser')
# Div containing countries
countries_div = soup.find("div", {"id": "countriesbox"})
# UL list from webpage
list = countries_div.div.ul
# Dictionary to contain all the countries
countries_dict = {}
# Loop through each country element
for country in list:
if isinstance(country, Comment) or isinstance(country, NavigableString):
continue
# Get the country name
country_name = country.select('a')[0].text
countries_dict[country_name] = 'some-value' # Add some value of your choice
# countries_dict variable now contains all the country names as keys
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।