Reputation: 3
I'm having trouble consuming this api, it's always giving me an error in this code here
that is a meke in python
chave_IPA = "Aqa9_KZFeRDAiAsJwyxVLQJh5tfZYeMyGHtUXEVd7PGm13xT1evy3vwA5MCcscqd"
distancia_matrix = []
for x in lista_cep:
lista = []
for j in lista_cidade:
rota = "http://dev.virtualearth.net/REST/V1/Routes/Driving?wp,0=" + x +"&mp.1=" + j +"/&key="+chave_IPA
r = requests.get(url = rota)
result = r.json()
distancia = result["resourceSets"][0]["resources"][0]['travelDistance']
lista.append(distancia)
distancia_matrix.append(lista)
matrix = pd.DataFrame(distancia_matrix)
Upvotes: -1
Views: 53
Reputation: 11522
Your API
whas malformed. This is the right way to do it:
chave_IPA = "Aqa9_KZFeRDAiAsJwyxVLQJh5tfZYeMyGHtUXEVd7PGm13xT1evy3vwA5MCcscqd"
distancia_matrix = []
for x in lista_cep:
lista = []
for j in lista_cidade:
rota = f"http://dev.virtualearth.net/REST/V1/Routes/Driving?wp.0=redmond%2Cwa&wp.1=Issaquah%2Cwa&avoid=minimizeTolls&key={chave_IPA}"
r = requests.get(url = rota)
result = r.json()
distancia = result["resourceSets"][0]["resources"][0]['travelDistance']
lista.append(distancia)
distancia_matrix.append(lista)
matrix = pd.DataFrame(distancia_matrix)
or like this:
import requests
import pandas as pd
chave_IPA = "Aqa9_KZFeRDAiAsJwyxVLQJh5tfZYeMyGHtUXEVd7PGm13xT1evy3vwA5MCcscqd"
lista_cep = ["YOUR_ZIP_CODE_LIST"]
lista_cidade = ["YOUR_CITY_LIST"]
distancia_matrix = []
for x in lista_cep:
lista = []
for j in lista_cidade:
rota = f"http://dev.virtualearth.net/REST/V1/Routes/Driving?wp.0=redmond%2Cwa&wp.1=Issaquah%2Cwa&avoid=minimizeTolls&key={chave_IPA}"
try:
r = requests.get(url=rota)
r.raise_for_status()
result = r.json()
distancia = result.get("resourceSets", [{}])[0].get("resources", [{}])[0].get('travelDistance', None)
if distancia is not None:
lista.append(distancia)
else:
lista.append('Error: Distance not found')
except requests.exceptions.RequestException as e:
print(f"Request error: {e}")
lista.append('Error: Request failed')
distancia_matrix.append(lista)
matrix = pd.DataFrame(distancia_matrix, columns=lista_cidade, index=lista_cep)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
print(matrix)
which returns:
YOUR_CITY_LIST
YOUR_ZIP_CODE_LIST 29.285
In other words:
Replace:
"http://dev.virtualearth.net/REST/V1/Routes/Driving?wp,0=" + x +"&mp.1=" + j +"/&key="+chave_IPA
with
f"http://dev.virtualearth.net/REST/V1/Routes/Driving?wp.0=redmond%2Cwa&wp.1=Issaquah%2Cwa&avoid=minimizeTolls&key={chave_IPA}"
Upvotes: 0