首页 > 解决方案 > 使用 google api 的多个地址的纬度/经度

问题描述

如何改进此代码以接受包含大量地址的文件并将其作为参数传递给 Google API 以获取纬度/经度?

现在这是一个返回一个地址的纬度/经度的例子,但我想自动化数据集中的多个地址。

import requests

GOOGLE_MAPS_API_URL = 'http://maps.googleapis.com/maps/api/geocode/json'

params = {
    'address': '100 FOUNDERS CV ,ALPHARETTA, GA,30022',
    'sensor': 'false',
    'region': 'USA'
}

# Do the request and get the response data
req = requests.get(GOOGLE_MAPS_API_URL, params=params)
res = req.json()

# Use the first result
result = res['results'][0]

geodata = dict()
geodata['lat'] = result['geometry']['location']['lat']
geodata['lng'] = result['geometry']['location']['lng']
geodata['address'] = result['formatted_address']

print('{address}. (lat, lng) = ({lat}, {lng})'.format(**geodata))

标签: pythonpython-3.xpython-2.7

解决方案


您可以使用 Google Maps Service 的 Python 库来加快速度。有一个地理编码功能:https ://github.com/googlemaps/google-maps-services-python/blob/master/googlemaps/geocoding.py

您可以将文件作为 dicts 的 dict 读取,并让每一行成为迭代的关键。


推荐阅读