擅长:python、mysql、java
<p>在这方面,我们不妨用一种普通的方式来做:</p>
<pre><code>def get_default(base, *keys, **kwargs):
sentinel = kwargs.get('sentinel', None)
cur = base
for key in keys:
try:
cur = cur[key]
except (KeyError, IndexError):
return sentinel
return cur
data = {
'movie': {
'boxOffice': [
{'admissionCount': 10},
{'admissionCount': 20},
]
}
}
</code></pre>
<p>这要求任何子对象实现正确的<code>__getitem__()</code>,该子对象不会引发<code>KeyError</code>或{<cd3>}来处理不可访问(子)项以外的任何其他项。从默认JSON解码器返回的dict和list对象会执行此操作,但要小心自定义对象。在</p>
^{pr2}$