使用wifi mac的python google地理定位api

使用wifi mac的python google地理定位api,python,json,google-maps,python-requests,Python,Json,Google Maps,Python Requests,我正在尝试使用谷歌的地理定位API提供wifi数据来确定位置。这是他们的。这是我的密码 @author: Keith """ import requests payload = { "considerIp": "false", "wifiAccessPoints": [ { "macAddress": "00:25:9c:cf:1c:ac", "signalStrength": -43, "signalToNoi

我正在尝试使用谷歌的地理定位API提供wifi数据来确定位置。这是他们的。这是我的密码

@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)
该请求忽略了除密钥部分之外的所有有效负载,只是使用我的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>"
curl-d@your_filename.json-H“内容类型:application/json”-i”https://www.googleapis.com/geolocation/v1/geolocate?key="

得到了我期望的结果。我只是希望能够在请求中执行相同的操作,但我尝试发送的数据是“your_filename.json”格式的。

请尝试以下操作:

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

注意,键被移动到查询参数(URL),并且使用了
json
参数来代替
params

好的,我发现了我的方法的错误。仔细看一下requests.post函数,我发现我没有正确使用parameters参数。在这之后,它工作得很好

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

使用json而不是param的数据修复了它。谢谢
r = requests.post('https://www.googleapis.com/geolocation/v1/geolocate', params=parameters, json=mydata, headers=headers)