简单的 API Rest python 脚本需要很多时间(或没有结束)

对于业务流程,我需要计算 1 个起点和 30 k 目的地之间的行驶距离。


我从 Google 表格中获得了起点和终点坐标。目的地是一个矩阵(大约 100 x 30)。


我正在使用HERE api 来计算距离。


结果应该是相同的目的地矩阵,但具有距离(与目的地坐标的顺序相同)。


这是脚本中计算距离的部分,我认为是持续很长时间的部分:


distance= []

distance= pd.DataFrame(distance)


for row in destinations.itertuples():

    a= row[1:]

    distance1 = []

    for column in a:

        try:

            args = {'waypoint0': 'geo!'+origins, 'waypoint1': 'geo!'+column, 'mode': 'fastest;truck'}

            qstr = urlencode(args)

            url = "https://route.ls.hereapi.com/routing/7.2/calculateroute.json?apiKey=xxxx" + qstr

            response = urllib.request.urlopen(url)

            dist = json.loads(response.read())['response']['route'][0]['leg'][0]['length']/1000


        except Exception:

            dist = 10000

        distance1.append(dist)

    distance2 = pd.DataFrame(distance1)

    distance2 = distance2.T

    distance = distance.append(distance2)

有没有人想到更好的方法来使脚本真正完成?


谢谢!!


30秒到达战场
浏览 72回答 1
1回答

神不在的星期二

逻辑看起来非常准确。如果您需要限制循环次数,请检查大规模矩阵路由 API 是否符合用例。大规模矩阵路由服务是一个 HTTP JSON API,用于计算具有大量起点和终点的路由矩阵(例如 10,000 x 10,000)。有关详细信息,请参阅以下文档:https://developer.here.com/documentation/large-matrix/api-reference-swagger.html注意:请从共享代码段中删除 appKey
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python