<p>首先深度复制dict,然后捕获所有字典并删除密码键:</p>
<pre><code>from copy import deepcopy
def remove_pass(v):
if isinstance(v, dict):
if "password" in v:
del v["password"]
for ele in v.values():
remove_pass(ele)
elif isinstance(v, Iterable) and not isinstance(v, basestring):
for ele in v:
remove_pass(ele)
from pprint import pprint as pp
d = deepcopy(d)
for v in d.values():
remove_pass(v)
</code></pre>
<p>输入:</p>
^{pr2}$
<p>输出:</p>
<pre><code>{'_enabled': 'true',
'foo': {'isdefault': 'false',
'name': 'qa',
'nested': {},
'url': 'http://prod.example.com',
'user': 'willow'},
'instances': [{'isdefault': 'true',
'name': 'dev',
'url': 'http://dev.example.com',
'user': 'buffy'},
{'isdefault': 'false',
'name': 'prod',
'nested': {'more_nesting': {'even_more_nesting': ({}, {})}},
'url': 'http://prod.example.com',
'user': 'spike'},
{'isdefault': 'false',
'name': 'qa',
'url': 'http://prod.example.com',
'user': 'willow'}],
'label': 'MyServers'}
</code></pre>