如何使用python 3和json正确获取GoogleMaps坐标并将其发布到Webhook?

时间:2019-01-13 22:00:22

标签: python python-3.x api geocoding

对JSON文件进行地理编码并将其发布到Web

首先,我的作业是自动化程序,该程序允许用户输入地址并使用googlemaps API(基本是地理编码)返回经纬度,然后该程序将坐标发布到网站上的json格式的webhook中叫做Datazar。

有关概念的信息

这个想法是,我不必使用curl来通过终端发送json文件,而是尝试通过python发送json文件,而不必退出程序使其完全自动化。我已经成功使用googlemaps api检索经纬度坐标并通过python 3的终端运行了它。

当我使用json和request模块将坐标发布到Webhook时,问题就开始了。我不确定我的代码格式是否正确。

这是我尝试用json发布的尝试:

I assigned the lat and long to a variable.

coordinates = geocode_result['geometry']['location']

url = 'https://webhooks.datazar.com/w69017d25-f1b9-4372-8e6f- 
15a4637ad94a'

requests.post(url, json=coordinates)

这是完整的代码。 (我已经拿走了api密钥 明显的原因。)

import googlemaps

import requests

import json

api_key = "<googleapikey>"
gm = googlemaps.Client(key=api_key)

address = input("Please enter the address: ")

geocode_result = gm.geocode(address)[0]

print("The Latitude and Longitude are now posted to your 
webhook." )
coordinates = geocode_result['geometry']['location']

url = 'https://webhooks.datazar.com/w69017d25-f1b9-4372-8e6f- 
15a4637ad94a'

requests.post(url, json=coordinates)

每次我通过终端运行程序时,都会收到错误消息:

回溯(最近通话最近):   

中的文件“ datazargeocode.py”,第21行
requests.post(url, json=coordinates) 

文件“ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py”,第116行,在文章中     返回

request('post', url, data=data, json=json, **kwargs)

在请求中,文件“ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/api.py”,第60行     返回

session.request(method=method, url=url, **kwargs)

请求中的文件“ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py”,第533行

resp = self.send(prep, **send_kwargs)

文件“ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py”,发送的第646行

r = adapter.send(request, **kwargs)

发送中的文件“ /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/adapters.py”,第516行

raise ConnectionError(e, request=request)

0 个答案:

没有答案