我在使用此 api 时遇到问题

问题描述 投票:0回答:1

我在使用这个 api 时遇到问题,它总是在此处的代码中给我一个错误

这是Python中的meke

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)
python pandas bing-api
1个回答
0
投票

您的

API
畸形。这才是正确的做法:

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)

或者像这样:

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)

返回:

                    YOUR_CITY_LIST
YOUR_ZIP_CODE_LIST          29.285

换句话说:

更换:

"http://dev.virtualearth.net/REST/V1/Routes/Driving?wp,0=" + x +"&mp.1=" + j +"/&key="+chave_IPA 

 f"http://dev.virtualearth.net/REST/V1/Routes/Driving?wp.0=redmond%2Cwa&wp.1=Issaquah%2Cwa&avoid=minimizeTolls&key={chave_IPA}"

© www.soinside.com 2019 - 2024. All rights reserved.