아니요, Google Maps API webservice 또는 requests
은 CSV 파일 이름입니다. 먼저 CSV 파일에서 데이터를 읽은 다음 API에 값을 전달해야합니다. 여기
import requests
import csv
url = 'https://maps.googleapis.com/maps/api/directions/json'
apikey = '*key*'
with open('csv_filename', 'r', newline='') as csvfile:
reader = csv.DictReader(csvfile)
coords = ['{X},{Y}'.format(**row) for row in reader]
start, waypoints, end = coords[0], coords[1:-1], coords[-1]
params = {'origin': start,
'waypoints': '|'.join(waypoints),
'destination': end,
'key': apikey}
directions = requests.get(url, params=params).json()
에서, DictReader()
키로 첫 번째 행을, 그래서 각 열은 각각 X
및 Y
으로 해결할 수있다 : 당신이 대신의 csv
module를 사용할 수 있습니다. 그런 다음 Google이 이해할 수있는 문자열로 형식을 지정합니다.
나는 CSV 파일이 길 찾기를 위해 일련의 포인트를 나타낸다고 가정했습니다. 시작, 중간 지점 및 끝.
데모 :이 특정한 경우
>>> import csv
>>> import requests
>>> sample = '''\
... Y,X,
... 51.516185371445459,-0.102373799765274,
... 51.512892732882598,-0.083154776597858,
... 51.514087813699639,-0.097131850779755,
... '''
>>> reader = csv.DictReader(sample.splitlines())
>>> next(reader)
{'': '', 'X': '-0.102373799765274', 'Y': '51.516185371445459'}
>>> reader = csv.DictReader(sample.splitlines())
>>> coords = ['{X},{Y}'.format(**row) for row in reader]
>>> start, waypoints, end = coords[0], coords[1:-1], coords[-1]
>>> params = {'origin': start,
... 'waypoints': '|'.join(waypoints),
... 'destination': end,
... 'key': 'someapikey'}
>>> params
{'destination': '-0.097131850779755,51.514087813699639', 'waypoints': '-0.083154776597858,51.512892732882598', 'key': 'someapikey', 'origin': '-0.102373799765274,51.516185371445459'}
>>> url = 'https://maps.googleapis.com/maps/api/directions/json'
>>> directions = requests.get(url, params=params).json()
>>> from pprint import pprint
>>> pprint(directions)
{'routes': [], 'status': 'ZERO_RESULTS'}
는 좌표 실제로 그렇게 'status': 'ZERO_RESULTS'
가 반환, 실행 가능한 경로에 포함되지 않는.
CSV 파일을 API에 넘겨 줄 수는 없습니다. CSV에서 'csv'모듈을 사용하여 데이터를 쉽게 읽을 수 있습니다. API에 필요한 매개 변수를 확인하려면 [API 설명서] (https://developers.google.com/maps/documentation/directions/)를 읽었습니까? –
여기에는 출발지와 목적지가 어떤 좌표로 지정되어 있습니까? –
많은 감사! 출발지와 목적지가 서로 다른 두 개의 CSV로되어 있습니다. 하나의 CSV에 넣고 다른 열에 넣는 것이 더 낫지 않습니까? 나는 경유지가 없어서 물건을 단순화합니다. – LearningSlowly