写了一段代码,用Python读取源文件信息,调用高德API计算起点和终点的距离,批量做的时候失败了,有懂的人忙吧看一下吗?源文件很简单,就是四列数据(起点经度,起点纬度,终点经度,终点纬度)
import json
import csv
import os
from pypac import PACSession
session=PACSession()
#根据经纬度计算距离
def get_distance(origin, destination):
parameters={'key':'8d9f5e55a2080b2d6fc9b61d67cb817d',
'origin': 'origin',
'destination':'destination',
'type': 1 }
base_url='https://restapi.amap.com/v3/direction/driving?'
response=session.get(url=base_url, params=parameters)
JD=response.json()
return JD['route']['paths'][0]['distance']
if __name__ == "__main__":
print('======================================================')
print('从高德API解析最优距离中')
print('======================================================')
with open('address.csv','r', encoding='utf-8') as f:
reader = csv.reader(f)
# for row in reader:
# # 行号从1开始
# print(reader.line_num, row)
start_longi_list=[]
start_lati_list=[]
end_longi_list=[]
end_lati_list=[]
distance_from_origin_list=[]
next(f)
for row in reader:
start_longi= row[0]
start_lati=row[1]
origin=str(start_longi)+','+str(start_lati)
end_longi=row[2]
end_lati=row[3]
destination=str(end_longi)+','+str(end_lati)
distance_from_origin=get_distance(origin, destination)['route']['paths'][0]['distance']
print('起点坐标:',origin,'终点坐标:',destination,'距离:',distance_from_origin)
start_longi_list.append(start_longi)
start_lati_list.append(start_lati)
end_longi_list.append(end_longi)
end_lati_list.append(end_lati)
distance_from_origin_list.append(distance_from_oringin)
# 插入表头
start_longi_list.insert(0,'起点经度')
start_lati_list.insert(0,'起点纬度')
end_longi_list.insert(0,'终点经度')
end_lati_list.insert(0,'终点纬度')
distance_from_origins_list.insert(0,'距离')
result_combine=zip(start_longi_list,start_lati_list,end_longi_list,end_lati_list,distance_from_origins_list)
result_list=list(result_combine)
print('======================================================')
print('输出结果:\n',result_list)
print('======================================================')
with open('dis.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(result_list)
print('结果已经保存到dis.csv,按任意键退出')
print('======================================================')
os.system('pause')
import json
import csv
import os
from pypac import PACSession
session=PACSession()
#根据经纬度计算距离
def get_distance(origin, destination):
parameters={'key':'8d9f5e55a2080b2d6fc9b61d67cb817d',
'origin': 'origin',
'destination':'destination',
'type': 1 }
base_url='https://restapi.amap.com/v3/direction/driving?'
response=session.get(url=base_url, params=parameters)
JD=response.json()
return JD['route']['paths'][0]['distance']
if __name__ == "__main__":
print('======================================================')
print('从高德API解析最优距离中')
print('======================================================')
with open('address.csv','r', encoding='utf-8') as f:
reader = csv.reader(f)
# for row in reader:
# # 行号从1开始
# print(reader.line_num, row)
start_longi_list=[]
start_lati_list=[]
end_longi_list=[]
end_lati_list=[]
distance_from_origin_list=[]
next(f)
for row in reader:
start_longi= row[0]
start_lati=row[1]
origin=str(start_longi)+','+str(start_lati)
end_longi=row[2]
end_lati=row[3]
destination=str(end_longi)+','+str(end_lati)
distance_from_origin=get_distance(origin, destination)['route']['paths'][0]['distance']
print('起点坐标:',origin,'终点坐标:',destination,'距离:',distance_from_origin)
start_longi_list.append(start_longi)
start_lati_list.append(start_lati)
end_longi_list.append(end_longi)
end_lati_list.append(end_lati)
distance_from_origin_list.append(distance_from_oringin)
# 插入表头
start_longi_list.insert(0,'起点经度')
start_lati_list.insert(0,'起点纬度')
end_longi_list.insert(0,'终点经度')
end_lati_list.insert(0,'终点纬度')
distance_from_origins_list.insert(0,'距离')
result_combine=zip(start_longi_list,start_lati_list,end_longi_list,end_lati_list,distance_from_origins_list)
result_list=list(result_combine)
print('======================================================')
print('输出结果:\n',result_list)
print('======================================================')
with open('dis.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(result_list)
print('结果已经保存到dis.csv,按任意键退出')
print('======================================================')
os.system('pause')