擅长:python、mysql、java
<p>您的dict结构是:</p>
<pre><code>{id: {name: {state: {level: status}}}, ...}
</code></pre>
<p>使用以下结构会更容易:</p>
<pre><code>{state1: {id: {store_dict}, ...}, state2: {...}, ...}
</code></pre>
<p>对于这种转换,我们需要通过获取每个级别中的唯一键并使用它访问下一个级别来获得状态。我们还将使用<a href="https://docs.python.org/3/library/collections.html#collections.defaultdict" rel="nofollow noreferrer">^{<cd1>}</a>为每个状态动态创建列表:</p>
<pre class="lang-py prettyprint-override"><code>from collections import defaultdict
states =defaultdict(list)
for _id, store in data.items():
name = list(store.keys())[0]
state = list(store[name].keys())[0]
states[state][_id] = store
</code></pre>
<p>现在,您只需访问带有所需状态的<code>states</code>。这是一个示例打印功能:</p>
<pre><code>def print_state(state):
for _id, store in states[state].items():
print(_id, store, sep=': ')
</code></pre>
<p>并使用它:</p>
<pre><code>>>> print_state('ny')
204: {'Wallmart': {'ny': {'good': 'busy'}}}
205: {'Wallmart': {'ny': {'great': 'busy'}}}
110: {'CVS': {'ny': {'great': 'busy'}}}
</code></pre>