【问题标题】:python google geolocation api using wifi macpython google geolocation api使用wifi mac
【发布时间】:2018-07-02 05:53:53
【问题描述】:

我正在尝试使用 Google 的地理定位 API,提供 wifi 数据以确定位置。这是他们的intro。这是我的代码

@author: Keith
"""

import requests

payload =         {
  "considerIp": "false",
  "wifiAccessPoints": [
    {
        "macAddress": "00:25:9c:cf:1c:ac",
        "signalStrength": -43,
        "signalToNoiseRatio": 0
    },
    {
        "macAddress": "00:25:9c:cf:1c:ad",
        "signalStrength": -55,
        "signalToNoiseRatio": 0
    }
  ],
  'key':'<MyAPIKey>'
}
r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate', 
params=payload)
print(r.text)

这是输出

{
 "location": {
  "lat": 32.3643098,
  "lng": -88.703656
 },
 "accuracy": 6061.0
}

该请求忽略了除关键部分之外的所有有效负载,只是使用我的 IP 地址找到了地理位置。所以我错误地发送了 json 有效负载。我知道这可能真的很简单,但我被困住了,找不到与请求一起使用 python 来执行此类 API 查询的示例。谢谢

编辑: 拿起 cURL 库并成功执行此命令:

curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=<myapikey>"

得到了我期望的输出。我只是希望能够在请求中做同样的事情,但我试图发送的数据在“your_filename.json”中。

【问题讨论】:

    标签: python json google-maps python-requests


    【解决方案1】:

    请尝试以下方法:

    r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate?key='+ '<MyAPIKey>', json=payload)
    

    请注意,键已移至查询参数 (URL),并使用 json 参数代替 params

    【讨论】:

    • 使用 json 而不是参数的数据修复了它。谢谢
    【解决方案2】:

    好的,我发现了我的方式的错误。仔细查看 requests.post 函数,我发现我没有正确使用参数参数。之后,它就完美运行了,

    r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate', params=parameters, json=mydata, headers=headers)
    

    【讨论】:

      猜你喜欢
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2020-08-11
      • 1970-01-01
      • 2014-11-15
      • 2014-02-07
      相关资源
      最近更新 更多