में परिणाम जोड़ना मुझे पाइथन 3 की असिनियो लाइब्रेरी के आसपास अपना आगे लपेटने में परेशानी हो रही है। मेरे पास ज़ीपोड्स की एक सूची है और मैं प्रत्येक ज़िपकोड संबंधित शहर और राज्य प्राप्त करने के लिए एपीआई को एसिंक कॉल करने की कोशिश कर रहा हूं। मैं इसे लूप के साथ अनुक्रम में सफलतापूर्वक कर सकता हूं लेकिन मैं इसे एक बड़ी ज़िप कोड सूची के मामले में तेज़ी से बनाना चाहता हूं।एसिन्सीओ के साथ कई कॉल करना और परिणाम को
यह मेरा मूल का एक उदाहरण है कि काम करता है
import urllib.request, json
zips = ['90210', '60647']
def get_cities(zipcodes):
zip_cities = dict()
for idx, zipcode in enumerate(zipcodes):
url = 'http://maps.googleapis.com/maps/api/geocode/json?address='+zipcode+'&sensor=true'
response = urllib.request.urlopen(url)
string = response.read().decode('utf-8')
data = json.loads(string)
city = data['results'][0]['address_components'][1]['long_name']
state = data['results'][0]['address_components'][3]['long_name']
zip_cities.update({idx: [zipcode, city, state]})
return zip_cities
results = get_cities(zips)
print(results)
# returns {0: ['90210', 'Beverly Hills', 'California'],
# 1: ['60647', 'Chicago', 'Illinois']}
यह async
import asyncio
import urllib.request, json
zips = ['90210', '60647']
zip_cities = dict()
@asyncio.coroutine
def get_cities(zipcodes):
url = 'http://maps.googleapis.com/maps/api/geocode/json?address='+zipcode+'&sensor=true'
response = urllib.request.urlopen(url)
string = response.read().decode('utf-8')
data = json.loads(string)
city = data['results'][0]['address_components'][1]['long_name']
state = data['results'][0]['address_components'][3]['long_name']
zip_cities.update({idx: [zipcode, city, state]})
loop = asyncio.get_event_loop()
loop.run_until_complete([get_cities(zip) for zip in zips])
loop.close()
print(zip_cities) # doesnt work
किसी भी मदद के इसे बनाने के लिए बहुत सराहना कर रहा है की कोशिश कर रहा पर मेरे भयानक गैर कार्यात्मक प्रयास है। मेरे द्वारा ऑनलाइन आने वाले सभी ट्यूटोरियल मेरे सिर पर एक टैड लगते हैं।
नोट: मैंने कुछ उदाहरण aiohttp
का उपयोग किया है। मैं संभवतः देशी पायथन 3 पुस्तकालयों के साथ चिपकने की उम्मीद कर रहा था।
इसके लिए धन्यवाद। 'Aiohttp' रास्ता बहुत साफ है। –
@ एंथनी-डंड्रिया यदि आपकी ज़िप कोड सूची बड़ी हो रही है, तो मैं 100 कनेक्शन या उससे अधिक की तरह एक संख्या संख्या के साथ-साथ संख्या को सीमित करने की भी सिफारिश करता हूं, अन्यथा आप अवरुद्ध हो सकते हैं। * अनुभव से बात नहीं कर रहा; -] –