Python 3.x 使用Python RESTful API时处理字典中的KeyError的最佳方法
启动服务器时,我会访问/users/1端点。因为字典是空的,所以它不存在。我被抛出了一个键错误,所以我的临时解决方案是将我的字典访问器从Python 3.x 使用Python RESTful API时处理字典中的KeyError的最佳方法,python-3.x,dictionary,flask,flask-restful,keyerror,Python 3.x,Dictionary,Flask,Flask Restful,Keyerror,启动服务器时,我会访问/users/1端点。因为字典是空的,所以它不存在。我被抛出了一个键错误,所以我的临时解决方案是将我的字典访问器从user\u dict[path\u user\u id]更改为.get(path\u user\u id,“此用户不存在”)。有没有更好的方法来处理这个问题我不确定这是否有用,但我的字典由整数键组成,这些键映射到一个“Person”类,该类包含有关此人的信息(姓名、年龄、地址等)404状态码表示“Resource not found”,非常适合您的用例 fro
user\u dict[path\u user\u id]
更改为.get(path\u user\u id,“此用户不存在”)
。有没有更好的方法来处理这个问题我不确定这是否有用,但我的字典由整数键组成,这些键映射到一个“Person”类,该类包含有关此人的信息(姓名、年龄、地址等)404状态码表示“Resource not found”,非常适合您的用例
from flask import Flask, jsonify, request
from flask_restful import Api, Resource
import jsonpickle
app = Flask(__name__)
api = Api(app)
# creating an empty dictionary and initializing user id to 0.. will increment everytime a person makes a POST request
user_dict = {}
user_id = 0
# Define a class and pass it a Resource. These methods require an ID
class User(Resource):
@staticmethod
def get(path_user_id):
return jsonify(jsonpickle.encode(user_dict.get(path_user_id, "This user does not exist")))
我认为服务器本身应该返回一个
400:Bad请求:请求无效。
当根据HTTP状态码定义请求一个不存在的用户时,400表示由于语法错误,服务器无法理解该请求。未经修改,客户端不应重复请求
so不应用于语法上合理的请求
from flask import abort
...
def get(path_user_id):
if path_user_id not in user_dict:
abort(404)
...