验证发送到服务器的json对象

时间:2014-07-01 11:09:40

标签: python json

我有一个简单的json对象发送到服务器,我想在验证规则中验证它:

{
    "key": "k1",
    "name": "n3",
    "place": "p2",
        ...
}

验证规则是第一个元素的值" key"应该是此列表["k1", "k2", "k3"]的一个元素,名称相同:["n1", "n2", "n3"]等等。

有没有像这样进行验证的python库?我试过jsonschema,但它是面向数据而不是特征。

3 个答案:

答案 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

之类的操作