<p>它对我有用:</p>
<pre><code>dict = {
'Tesco': [{'Parking': 'True', 'TrolleyHire': True,
'Location': {'Address': {'BuildingName': 'Church Street',
'BuildingNumber': '14', 'City' : 'London'},
'Permit': True}}]
}
for key in dict:
for key2 in dict[key]:
print (key2.keys())
</code></pre>
<p>打印:</p>
^{pr2}$
<p>你现在用的那本词典一定是这本吗?我不得不在结尾加些东西来完成它。在</p>
<p><strong>编辑:在看到原始代码后。</strong></p>
<p>正如您所说,JSON正在创建一个包含两个键的dict-Scheme和ChargeDevice。迭代这些键中的每一个。在</p>
<p>在第一个过程中,<code>key</code>等于<code>"Scheme"</code>。在</p>
<p>然后说<code>for key2 in data[key]</code>,它获取与“Scheme”相关联的字典并遍历它的键。在</p>
<p>问题是key2总是代表一个键串-而字符串没有键,只有dict有键。例如,key2将采用值“SchemeCode”,它是一个字符串,而您调用的是<code>key2.keys()</code>-字符串没有keys()方法,因此会出现错误。你可能只想<code>print(key2)</code>。在</p>
<p><strong>编辑2</strong></p>
<p>我不确定我是否完全理解您需要什么,但是下面将在主指令的第二级打印一个没有重复项的键列表</p>
<pre><code>key_names = []
for key in data:
for key2 in data[key]:
if type(key2) == str and key2 not in key_names:
key_names.append(key2)
elif type(key2) == dict:
for key3 in key2.keys():
if key3 not in key_names:
key_names.append(key3)
print(key_names)
</code></pre>
<p>如果你想任意深入,你需要使用一个递归调用自己的函数。在</p>