2
我有做一个RESTful调用服务器下面的代码:打开IF-ELSEIF语句转换成字典
def request(self, request, account_id, user):
if request is 'get_id':
#Get user from id
result = requests.get(api_root + "/accounts/" + account_id + "https://stackoverflow.com/users/" + user, headers=self.headers)
elif request is 'get_username':
#Get user from username
result = requests.get(api_root + "/accounts/" + account_id + "/users?username=" + user, headers=self.headers)
elif request is 'get_email':
#Get user from username
result = requests.get(api_root + "/accounts/" + account_id + "/users?email=" + user, headers=self.headers)
elif request is 'post':
#Add user to new account
result = requests.post(api_root + '/accounts/' + account_id + '/users', data=json.dumps(user), headers=self.headers)
elif request is 'delete':
#Delete user from account
result = requests.delete(api_root + "/accounts/" + account_id + "https://stackoverflow.com/users/" + user, headers=self.headers)
#Throw exception if non-200 response
result.raise_for_status()
#Print request result/status
print "\nRequest " + request + " Result: " + result.text + "\nStatus: " + str(result.status_code)
return result
我知道这是丑陋的,我想把它变成一本字典,是这样的:
def request(self, request, account_id, user):
url = api_root + "/accounts/" + account_id
function_dictionary = {}
function_dictionary['get_id'] = requests.get(url + "https://stackoverflow.com/users/" + user, headers=self.headers)
function_dictionary['get_username'] = requests.get(api_root + "/accounts/" + account_id + "/users?username=" + user, headers=self.headers)
function_dictionary['get_email'] = requests.get(api_root + "/accounts/" + account_id + "/users?email=" + user, headers=self.headers)
function_dictionary['delete'] = requests.delete(url + "https://stackoverflow.com/users/" + user, headers=self.headers)
function_dictionary['post'] = requests.post(url + '/users', data=json.dumps(user), headers=self.headers)
result = function_dictionary.get(request)
#Throw exception if non-200 response
result.raise_for_status()
return result
我仍然有一种感觉,我正在以错误的方式去做。任何人都可以告诉我在Python中处理if/elseif语句的正确方法是什么?
谢谢!
检查元组在这里:标题= self.headers ...无效语法 – ndpu
啊,好点的,谢谢! – jonrsharpe
哇这很酷,只是一些事情,'function_dict(request)'应该是'function_dict [request]'对吗?而对于我的'post'请求,我应该如何包含'data = json.dumps(user)'?我收到一个语法错误,将更新我的问题。 – TomSelleck