使用我的 Google 地理编码 API 键和 Python 地理编码器

Using my Google Geocoding API key with Python geocoder

我是 Python 的初学者,我一直在使用 Pandas 和 Jupyter 上的 Geocoder 对数据库进行地理编码。

由于 df 有点长(大约 3000 行),我想使用 Google 的地理编码 API。

我已经创建了一个免费密钥,但我不知道我应该用它做什么。帮忙?

顺便说一句,我的代码是这样的:

import geocoder
import pandas as pd

geo = geocoder

df=pd.read_excel('hsp2.xlsx')

df['Coordinates']=df['Address'].apply(geo.google).apply(lambda x: x.latlng if x != None else None)

df.to_csv('output.csv', sep='|', encoding='iso8859_15')

您需要在导入geocoder:

之前设置环境变量
import os

os.environ["GOOGLE_API_KEY"] = "api_key_from_google_cloud_platform"

import geocoder

geo = geocoder.google(address)
latlong = geo.latlng

注:

正如 Murmel 在评论中提到的,不应在您的代码中设置包含键(通常)的环境变量。
如果你在某处部署它,那么在你的配置文件中设置环境变量。或者甚至更好,作为 Kubernetes 之类的秘密。

否则将bash中的环境变量设置为
export GOOGLE_API_KEY=api_key_from_google_cloud_platform

我同意 的回答。你可以使用它并且它正在工作。我有点害怕如果我在循环中使用地理编码器然后 google 肯定会阻止我的 ip 地址,所以我通过 git 集线器代码发现地理编码器得到 google api 键来自 os.environ.get('GOOGLE_API_KEY')。你可以在图片中看到:

基本上有2种选择:

  • 传递 API KEY 作为环境变量:

    GOOGLE_API_KEY=YOUR-API-KEY-HERE  python your_program.py
    
  • 传递 API KEY 作为参数:

    geocoder.google('some address', key='YOUR-API-KEY-HERE')
    

详情

  1. 您正在使用名为 geocoder 的 python 库,它本身是多个地理编码服务的包装器。

  2. 如果你看pypi page of geocoder, you can (ignoring the rendering problems) find the docs for geocoder. In your case you probably want to have a look at the Google related part of the docs.

  3. 对于基本用法,即使没有 API KEY,此接缝也能正常工作,但您可以使用 2 个变体指定一个:

    • Environment variable: Like 。出于安全原因,此方法旨在用于在代码中不使用 API KEY。 (可能您想将代码上传到 public 存储库,但又不想向所有人公开您的 API KEY。)

    • "Key" parameter: 您还可以通过使用 key 参数指定 KEY 来提供您的 API,例如:

      geocoder.google('some address', key='YOUR-API-KEY-HERE')