首先,我的作业是自动化程序,该程序允许用户输入地址并使用googlemaps API(基本是地理编码)返回经纬度,然后该程序将坐标发布到网站上的json格式的webhook中叫做Datazar。
这个想法是,我不必使用curl来通过终端发送json文件,而是尝试通过python发送json文件,而不必退出程序使其完全自动化。我已经成功使用googlemaps api检索经纬度坐标并通过python 3的终端运行了它。
当我使用json和request模块将坐标发布到Webhook时,问题就开始了。我不确定我的代码格式是否正确。
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)