是否有任何python助手库可以用来创建模型,用于生成复杂的json文件,如以下所示。我读过关于科兰德的文章,但我不确定它能满足我的需要。下面这个棘手的部分是,trigger-rule部分可能有嵌套的match规则,如https://github.com/adnanh/webhook/wiki/Hook-Rules中所描述的
[
{
"id": "webhook",
"execute-command": "/home/adnan/redeploy-go-webhook.sh",
"command-working-directory": "/home/adnan/go",
"pass-arguments-to-command":
[
{
"source": "payload",
"name": "head_commit.id"
},
{
"source": "payload",
"name": "pusher.name"
},
{
"source": "payload",
"name": "pusher.email"
}
],
"trigger-rule":
{
"and":
[
{
"match":
{
"type": "payload-hash-sha1",
"secret": "mysecret",
"parameter":
{
"source": "header",
"name": "X-Hub-Signature"
}
}
},
{
"match":
{
"type": "value",
"value": "refs/heads/master",
"parameter":
{
"source": "payload",
"name": "ref"
}
}
}
]
}
}
]发布于 2017-05-01 08:22:00
定义一个这样的类:
class AttributeDictionary(dict):
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__加载JSON时,将AttributeDictionary作为object_hook传递
import json
data = json.loads(json_str, object_hook=AttributeDictionary)然后,可以通过将键指定为属性来访问dict条目:
print data[0].id输出
webhook注意:,您需要用下划线替换键中的破折号。如果你不这样做,这种方法对那些钥匙就行不通了。
https://stackoverflow.com/questions/43716105
复制相似问题