我找到了关于这项工作的this帖子等。Python REST客户端的论坛和使用的论坛没有包括代码的缩进,作者也没有包括它们,所以我所做的就是输入我认为是正确的缩进,并得到以下结果:
import sys, json, urllib
from httplib2 import Http
class WORKetcRESTClient():
session_key = None
connector_hash = None
def __init__(self,url):
if not "http://" in url and not "https://" in url:
url = "http://%s" % url
self.base_url = url
else:
self.base_url = url
def authenticate(self,user,password):
args = { "email" : user,"pass" : password,}
res = self.request("AuthenticateWebSafe", args)
if res["Code"] == 1:
self.session_key = res["SessionKey"]
self.user = res["User"]
return True
else:
return False
def request(self,service,args):
url = "%s/%s" % (self.base_url, service)
if not self.session_key is None:
url = "%s?VeetroSession=%s" %(url,self.session_key)
p = {}
p['data'] = json.dumps(args)
h = Http()
r,c = h.request(url, body=json.dumps(args), method="POST", headers = {'contentType' : 'application/json; charset=utf-8'})
if r.status == 200:
jsondata = json.loads(c)
return jsondata
else:
print r,c
return {}
client = WORKetcRESTClient('http://company.worketc.com')
client.authenticate('User@company.com', 'pAsSwOrD')
result = client.request('FindCompanies',{'keywords':'customer'})
print result说实话,如果运行时没有任何错误,我不确定我会把什么打印到控制台上,但我得到的错误使我无法找出:
Traceback (most recent call last):
File "worketc.py", line 42, in <module>
File "worketc.py", line 17, in authenticate
res = self.request("AuthenticateWebSafe", args)
File "worketc.py", line 34, in request
if r.status == 200:
UnboundLocalError: local variable 'r' referenced before assignment它告诉我变量'r‘在赋值/创建之前被调用,但考虑到它在当前脚本中的位置,我不确定它需要被创建或移动到哪里。有谁能解释一下这个问题吗?
发布于 2014-01-10 04:39:04
if not self.session_key is None:
url = "%s?VeetroSession=%s" %(url,self.session_key)
p = {}
p['data'] = json.dumps(args)
h = Http()
r,c = h.request(url, body=json.dumps(args), method="POST", headers = {'contentType' : 'application/json; charset=utf-8'})是正确的缩进
https://stackoverflow.com/questions/21030536
复制相似问题