<p>对于一些真正有活力的东西,我会用这样的东西。你知道吗</p>
<pre><code>original_dict = {
'name': "Rahul",
'userTimestamp': 1,
'user': {'id': '20',
'links': {'self': [{'href': 'https://john.com'}]},
'mail': 'john@john.com',
'message': 'Hello world',
'name': 'john'}
}
def get_dict_with_relevant_fields(orig_dict, interesting_fields):
new_dict = {}
for key, value in orig_dict.iteritems():
if key in interesting_fields:
new_dict[key] = value
elif isinstance(value, dict):
new_dict.update(get_dict_with_relevant_fields(value, interesting_fields))
return new_dict
</code></pre>
<p>所以我可以这样称呼:</p>
<pre><code>get_dict_with_relevant_fields(original_dict, ["id", "name"])
</code></pre>
<p>但是,如果您知道数据的确切结构和有限字段的位置以及它们在结构中的位置。我总是喜欢这样:</p>
<pre><code>new_dict = {
'name': original_dict['user']['name']
'message': original_dict['user']['message']
}
</code></pre>
<p>更好的是,如果我已经有了上面的实用函数,我将按如下方式使用它:</p>
<pre><code>get_dict_with_relevant_fields(original_dict['user'], ['name', 'message'])
</code></pre>
<p>当然,我假设没有性能消耗,而且上述函数可以很容易地在性能方面做得更好。你知道吗</p>