प्रत्येक देश के नाम के साथ एक शब्दकोश की कुंजी भरने के लिए एक एपीआई का उपयोग करने की कोशिश कर रहा है। मैं मूल्यों में भर दूंगा। हर देश में मैन्युअल रूप से टाइप करने के विरोध में समय बचाने की कोशिश करना। यहां देशों के साथ एक लिंक दिया गया है 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())
0
ObiP1 9 मार्च 2020, 07:34
आपने क्या प्रयास किया? दिखाया गया कोड उस साइट से वैध http प्रतिक्रिया की जांच कर रहा है, यह उस अर्थ में एपीआई एंडपॉइंट्स के साथ मदद नहीं करता है।
 – 
FishingCode
9 मार्च 2020, 07:37
1
आप वेबसाइट को पार्स करने के लिए beautifoulsoup का उपयोग कर सकते हैं या आप बस देशों की सूची को अपने क्लिपबोर्ड पर कॉपी कर सकते हैं और बस उसे टेक्स्ट फ़ाइल में सहेज सकते हैं। आपको बस उस फाइल को पार्स करने की जरूरत है।
 – 
mrzo
9 मार्च 2020, 07:39
क्षमा करें, यह वास्तव में काम कर रही वेबसाइट के लिए एक जांच थी .. मुझे यह जानने की जरूरत है कि मेरे शोध के अनुसार मेरी चाबियों में देशों के नाम भेजने के लिए यूआरएल के बाद पैरामीटर को कैसे कार्यान्वित किया जाए।
 – 
ObiP1
9 मार्च 2020, 07:40
इससे आपको मदद मिलनी चाहिए, देखें लिंक
 – 
FishingCode
9 मार्च 2020, 07:42
क्या आपको उस वेब पेज का उपयोग करना है? ऐसे पुस्तकालय हैं जो आपको उपयोग में आसान प्रारूप में देशों की सूची देंगे, जैसे कि pypi.org/project /pycountry
 – 
Selcuk
9 मार्च 2020, 07:56

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 आपका परिणामी निर्देश होगा।

0
illusion 9 मार्च 2020, 08:30
बहुत बहुत धन्यवाद, हालांकि, मैंने इस साइट की कोशिश की और 404 प्राप्त किया, जिसका अर्थ है कि समापन बिंदु दुर्गम है। मुझे एक समाधान मिल गया है।
 – 
ObiP1
9 मार्च 2020, 07:51
माफ़ करना! यह अब पढ़ रहा है .. मैं एपीआई का उपयोग करने के लिए बिल्कुल नया हूं .. मैं उन देशों के नामों को सीधे शब्दकोश में अपनी कुंजी में कैसे रख सकता हूं? मैं समझता हूं कि मुझे लूप की आवश्यकता है, लेकिन देश के नाम की सुविधा प्राप्त करने के लिए मुझे किस चर को संबोधित करने की आवश्यकता है? या यदि यह एक त्वरित समाधान है तो क्या आप इसे लागू कर सकते हैं, इसलिए मैं आपके द्वारा उपयोग की जाने वाली तकनीक को देख सकता हूं और इसका अध्ययन कर सकता हूं ताकि मैं इस मुद्दे पर दोबारा न आ सकूं?
 – 
ObiP1
9 मार्च 2020, 08:10
आप देश के नाम को एक शब्दकोश में एक कुंजी के रूप में संग्रहीत करना चाहते हैं?
 – 
illusion
9 मार्च 2020, 08:18
आप इस उद्देश्य के लिए डिक्शनरी कॉम्प्रिहेंशन का उपयोग कर सकते हैं: my_countries = {x['name']: "your intended values" for x in all_}। आप अपने मान "your intended values" के स्थान पर रख सकते हैं। यह एक अन्य अजगर वस्तु, तानाशाही, सूची या कोई अन्य प्रकार भी हो सकता है। my_countries आपका परिणामी निर्देश होगा...
 – 
illusion
9 मार्च 2020, 08:23
उपरोक्त कोड काम करना चाहिए। "your intended values" के बजाय बस अपने स्वयं के मान जोड़ें। साथ ही, अगर यह काम कर रहा है तो क्या आप डाउनवोट हटा सकते हैं ...?
 – 
illusion
9 मार्च 2020, 08:32

मेरा सुझाव है कि आप 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

ये रहा लाइव डेमो

0
Shahlin Ibrahim 9 मार्च 2020, 12:34