关于Python中tsv文件解析的查询

2024-04-23 11:14:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个python函数,它将使用googleapi计算两点之间的距离。功能如下:

导入urllib 将json作为simplejson导入

def calculateDistance(sourceLatitude, sourceLongitude, destinationLatitude, destinationLongitude):
        sourceCoordinates = sourceLatitude, sourceLongitude
        destinationCoordinates = destinationLatitude, destinationLongitude

        url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins={0}&destinations={1}&mode=driving&language=en-EN&sensor=false".format(str(sourceCoordinates),str(destinationCoordinates))
        result= simplejson.load(urllib.urlopen(url))
        resulting_distance = result['rows'][0]['elements'][0]['distance']['text']
        print "The distance is: " + resulting_distance

#calculateDistance(5.341612, -3.913602,5.342044, -4.143452)
#calculateDistance(5.342044, -4.143452,5.341612, -3.913602)

我有一个tsv文件如下:

-4.143452    5.342044
-3.913602    5.341612
-3.967045    5.263331
     ....
     ....

第一列代表经度,第二列代表纬度。你知道吗

现在,我想把这些值的每一个组合传递给我的函数,得到点之间的距离。有人能告诉我一个有效的方法吗?tsv文件相当大。你知道吗


Tags: 函数jsonurl距离urllibdistancemapssimplejson
1条回答
网友
1楼 · 发布于 2024-04-23 11:14:11
Points=[]
with open('file.tsv','r') as f:
    for line in f:
            Points.append(line.strip().split('\t'))
for combo in itertools.combinations(Points, 2):
    calculateDistance(combo[0][0], combo[0][1], combo[1][0], combo[1][1])

相关问题 更多 >