我正在尝试做一些TastyPie验证,但我对Python(以及一般的编程)相对较新,而且对TastyPie来说是全新的,所以欢迎提供帮助。
bundle.data
是一本字典,我
想检查字典中是否存在密钥
对每个键的值进行更多验证。
示例代码:
class SampleClass(Validation):
def is_valid(self, bundle, request=None):
errors = defaultdict(list)
for number in (bundle.data['number_one'], bundle.data['number_two']):
if number not in bundle.data:
errors[number] = ['missing field']
else:
# Do more stuff with number
最狡猾的方式是什么?
我认为for number in....
语句和if number not in bundle.data
语句是多余的。那是对的吗?如果两个数字都是字典中的键并将它们分配给变量名称,那么我如何组合检查以便我可以同时处理两者?
谢谢!
答案 0 :(得分:0)
这不是Tastypie问题。这是Python的问题。
检查存在用途:
for key in [key1, key2]:
if key not in my_list:
# key not exist
else:
# key exist
你的代码:
class SampleClass(Validation):
def is_valid(self, bundle, request=None):
errors = defaultdict(list)
for number in ('number_one', 'number_two'):
if number not in bundle.data:
errors[number] = ['missing field']
else:
value = bundle.data[number]
# Do more stuff with number
我认为....语句中的for number和不在bundle.data语句中的if号是多余的。这是对的吗?
这段代码毫无意义。如果key1或key2确实存在,则会引发KeyError
。
如果两个数字都是字典中的键并将它们分配给变量名,那么如何组合检查以便我可以同时处理两者?
if key1 in data and key2 in data:
val1 = data[key1]
val2 = data[key2]