我正在使用flask
和flask_restful
,并且有类似
self.reqparse = reqparse.RequestParser()
self.reqparse.add_argument('OptionalArg', type=str, default=None)
self.reqparse.add_argument('OptionalArg2', type=str, default=None)
self.__args = self.reqparse.parse_args()
if 'OptionalArg' in self.__args and self.__args['OptionalArg'] is not None:
# Do something with the OptionalArg only
pass
else:
# Do something with all the arguments that are not None.
pass
虽然这个问题是在几年前提出来的,但我想知道是否有更多的pythonic方式来检查Key
是否在字典中而且Value
不是{{1} }。
我提到None
和flask
的原因是为了证明我的字典中flask_restful
的{{1}}值的初始化是正确的。
答案 0 :(得分:2)
只需使用dict.get
方法和可选的default
参数即可。如果d[key]
存在于字典key
中,则返回d
,否则返回default
值:
In [1]: d = {1: 'A', 2: None}
In [2]: d.get(1)
Out[2]: 'A'
In [3]: d.get(2)
In [4]: d.get(1) is not None
Out[4]: True
In [5]: d.get(2) is not None
Out[5]: False
In [6]: d.get(3) is not None
Out[6]: False
对于你的情况:
if self.__args.get('OptionalArg') is not None:
# Do something with the OptionalArg only
pass
else:
# Do something with all the arguments that are not None.
pass