使用wifi mac的python google地理定位api
我正在尝试使用谷歌的地理定位API提供wifi数据来确定位置。这是他们的。这是我的密码使用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
@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)