· 4 years ago · Apr 21, 2021, 12:12 AM
1'''Ejercicio 1:
2Modifica geojson.py o geoxml.py para imprimir en pantalla
3el código de país de dos caracteres de los datos recuperados.
4Añade comprobación de errores, de modo que tu programa no rastree los
5datos si el código del país no está presente.
6Una vez que lo tengas funcionando,
7busca “Océano Atlántico” y asegúrate de que es capaz de
8gestionar ubicaciones que no estén dentro de ningún país.'''
9import urllib.request
10import urllib.parse
11import urllib.error
12import json
13import ssl
14
15api_key = False
16# If you have a Google Places API key, enter it here
17# api_key = 'AIzaSy___IDByT70'
18# https://developers.google.com/maps/documentation/geocoding/intro
19
20if api_key is False:
21 api_key = 42
22 serviceurl = 'http://py4e-data.dr-chuck.net/json?'
23else:
24 serviceurl = 'https://maps.googleapis.com/maps/api/geocode/json?'
25
26# Ignore SSL certificate errors
27ctx = ssl.create_default_context()
28ctx.check_hostname = False
29ctx.verify_mode = ssl.CERT_NONE
30# Ann Arbor, MI
31while True:
32 address = input('Enter location: ')
33 if len(address) < 1:
34 break
35
36 parms = dict()
37 parms['address'] = address
38 if api_key is not False:
39 parms['key'] = api_key
40 url = serviceurl + urllib.parse.urlencode(parms)
41
42 print('Retrieving', url)
43 uh = urllib.request.urlopen(url, context=ctx)
44 data = uh.read().decode()
45 print('Retrieved', len(data), 'characters')
46
47 try:
48 js = json.loads(data)
49 except:
50 js = None
51
52 if not js or 'status' not in js or js['status'] != 'OK':
53 print('==== Failure To Retrieve ====')
54 print(data)
55 continue
56
57 print(json.dumps(js, indent=4))
58
59 lat = js['results'][0]['geometry']['location']['lat']
60 lng = js['results'][0]['geometry']['location']['lng']
61 print('lat', lat, 'lng', lng)
62 location = js['results'][0]['formatted_address']
63 print(location)
64# recorro el diccionario
65 for item in js['results']:
66 for elemento in item['address_components']:
67 if elemento['types'] != '':
68 print(elemento)
69 else:
70 print('no existe el pais')
71
72
73# Ann Arbor, MI
74