我试图找到一种有说服力的方法来检查字典中是否存在某些键并使用它们来构建一个新键。
这是我的示例 json:
"dmarc": {
"record": "v=DMARC1; p=none; rua=mailto:dmarc.spc@test.domain; adkim=s; aspf=s",
"valid": true,
"location": "test.domain",
"warnings": [
"DMARC record at root of test.domain has no effect"
],
"tags": {
"v": {
"value": "DMARC1",
"explicit": true
},
"p": {
"value": "none",
"explicit": true
},
"rua": {
"value": [
{
"scheme": "mailto",
"address": "ssc.dmarc.spc@canada.ca",
"size_limit": null
}
],
"explicit": true
},
"adkim": {
"value": "s",
"explicit": true
},
"aspf": {
"value": "s",
"explicit": true
},
"fo": {
"value": [
"0"
],
"explicit": false
},
"pct": {
"value": 100,
"explicit": false
},
"rf": {
"value": [
"afrf"
],
"explicit": false
},
"ri": {
"value": 86400,
"explicit": false
},
"sp": {
"value": "none",
"explicit": false
}
}
}
}
我特别想做的是 pull record
, valid
, location
, tags-p
, tags-sp
, 和tags-pct
以编程方式,而不是做一堆 try/excepts。例如,要获得valid
,我会:
try:
res_dict['valid'] = jsonData['valid']
except KeyError:
res_dict['valid'] = None
现在,这很容易循环/重复顶级键/值,但是我将如何为嵌套的键/值完成此操作?