Ma loop for ne marche pour google map api

Résolu/Fermé
sulot Messages postés 94 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 6 novembre 2016 - Modifié par sulot le 24/10/2015 à 16:43
dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 - 24 oct. 2015 à 20:10
Bonjour,

J'ai une api qui liste un ensemble de lieux, et j'aimerais obtenir leur coordonnées en longitude et latitude. Donc je récupère la première api, et j'utilise l'api de googlemap.

Quand je remplace index par 1,2 ou 3 en enlevant la loop for, car marche... Comprends pas. Une idée? Merci!

Mon code dans lesquelles j'ai enlevé mes clés ap suivi du message d'erreur quand je copie colle le code dans le terminal:


import json
import urllib.request


#API listes des lieux:

url="https://www.kimonolabs.com/api/YYYYY?apikey=XXXXXXXXX"
data = json.loads(urllib.request.urlopen(url).read().decode("utf-8"))

googlekey = 'XXXXXXXXXXX'

#Va chercher les données de l'api liste des lieux les une après les autres puis va chercher les lat et long


for index in range(0,2):
 collect= data['results']['collection1'][index]['Adresse']
 print (collect)
 addresse1= collect.replace(' ','+').replace('\n','')
 url2= 'https://maps.googleapis.com/maps/api/geocode/json?address=' + addresse1 + '&key=' + googlekey
 data2=json.loads(urllib.request.urlopen(url2).read().decode("utf-8"))
 coord_latitude = data2['results'][0]['geometry']['location']['lat']
 coord_longitude = data2['results'][0]['geometry']['location']['lng']
 print (collect,coord_latitude,coord_longitude)




Traceback (most recent call last):
File "<stdin>", line 8, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 162, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 465, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 483, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 443, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1283, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py", line 1240, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1118, in _send_request
self.putrequest(method, url, **skips)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 960, in putrequest
self._output(request.encode('ascii'))
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 43: ordinal not in range(128)



A voir également:

1 réponse

dsy73 Messages postés 9252 Date d'inscription dimanche 22 août 2010 Statut Contributeur Dernière intervention 23 octobre 2020 2 482
24 oct. 2015 à 20:10
Salut
je ne crois pas que cela soit la solution mais juste une remarque : tu indiques avoir tester un index de 1 à 3 mais ta boucle va de 0 à 2.
0