回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正试图找到一种有说服力的方法来检查字典中是否存在某些键,并使用这些键来构建一个新的字典</p>
<p>下面是我的json示例:</p>
<pre><code> "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
}
}
}
}
</code></pre>
<p>我特别想做的是,以编程的方式拉取<code>record</code>、<code>valid</code>、<code>location</code>、<code>tags-p</code>、<code>tags-sp</code>和<code>tags-pct</code>,而不是做一堆try/excepts。例如,要获得<code>valid</code>,我需要:</p>
<pre><code>try:
res_dict['valid'] = jsonData['valid']
except KeyError:
res_dict['valid'] = None
</code></pre>
<p>现在,对于顶级的键/值,循环/重复这个操作已经足够容易了,但是对于嵌套的键/值,我该如何完成这个操作呢</p>