Fry*_*Man 0 python validation dictionary
在不使用任何外部库的情况下验证字典中每个值的最佳方法是什么
for example dict = {"A":"some_string",
"B":12,
"C":83,
"D":56.......so on}
Run Code Online (Sandbox Code Playgroud)
我必须验证,如果键是A那么值应该是string,如果键是B那么值应该是int并且范围从1 to 20
如果键是C那么值应该是int并且范围从 1 到 100 所以基于键,值的验证也有所不同......
任何更短的方法来做到这一点?我的字典很大
这是使用另一本字典的方法:
d = {"A":"some_string",
"B":12,
"C":83,
"D":56}
# Map your validation functions to the keys
validations = {
"A": lambda x: isinstance(x, str),
"B": lambda x: isinstance(x, int) and 1 <= x <= 20,
"C": lambda x: isinstance(x, int) and 1 <= x <= 100,
}
for k, v in d.items():
print(validations.get(k, lambda x: False)(v)) # Default validation just returns False (invalid)
Run Code Online (Sandbox Code Playgroud)
要检查字典是否有效,您可以使用:
print(all(validations.get(k, lambda x: False)(v) for (k, v) in d.items()))
Run Code Online (Sandbox Code Playgroud)