我有一个简单的json对象发送到服务器,我想在验证规则中验证它:
{
"key": "k1",
"name": "n3",
"place": "p2",
...
}
验证规则是第一个元素的值" key"应该是此列表["k1", "k2", "k3"]
的一个元素,名称相同:["n1", "n2", "n3"]
等等。
有没有像这样进行验证的python库?我试过jsonschema
,但它是面向数据而不是特征。
答案 0 :(得分:1)
你不能做这样简单的事情:
def get_valid_value_for_key(key):
# return a list
def validate_json(json_dict):
for key in json_dict.iterkeys():
if not json_dict[key] in get_valid_value_for_key(key):
return False # or raise an exception
return True
使用函数可以节省一些输入,具体取决于您的有效值的定义方式。
答案 1 :(得分:0)
if json["key"] == "k1":
if json["name"] == "n1":
if json["place"] == "p1":
或创建字典
jsonDict = {"key": ["k1", "k2", "k3"], "name": ["n1", "n2", n3"], "place": ["p1", "p2", p3"]}
并使用json键获取它的可能值。
所以如果我想获得key的所有值并循环遍历
possibleVals = jsonDict["key"]
for val in possibleVals:
if val == jsonVal:
答案 2 :(得分:0)
查看schema,一个用于验证python数据结构的库。您可以将任何函数定义为验证器,因此在您的情况下,您可以执行lambda x: x in acceptable_values