我有一句话看起来是这样的:
{'Tesco': [{'Parking': 'True', 'TrolleyHire': True,
'Location': {'Address': {'BuildingName': 'Church Street',
'BuildingNumber': '14', 'City' : 'London'},
'Permit' = True},
基本上它是一个dict,其中的键包含一个列表形式的嵌套dict。在
我想打印出上面第一个“Tesco”键中的所有嵌套键。在
我试过:
^{pr2}$但是我一直得到AttributeError:“str”对象没有属性“keys”。在
上面的钥匙包含特易购的钥匙和另一把钥匙。在
上面的key2包含与Tesco密钥相关联的dict(键/值对)列表。在
key2.keys()应该提供与该dict相关联的键列表,但它似乎不太起作用!在
我不想让一个函数为我做这件事。在
显然这是一个非常简单的解决办法,但我就是搞不懂。 我已经花了5个小时在这上面,现在我正式放弃了,因为它看起来应该非常简单
使用.values()可能会更优雅:
它对我有用:
打印:
^{pr2}$你现在用的那本词典一定是这本吗?我不得不在结尾加些东西来完成它。在
编辑:在看到原始代码后。
正如您所说,JSON正在创建一个包含两个键的dict-Scheme和ChargeDevice。迭代这些键中的每一个。在
在第一个过程中,
key
等于"Scheme"
。在然后说
for key2 in data[key]
,它获取与“Scheme”相关联的字典并遍历它的键。在问题是key2总是代表一个键串-而字符串没有键,只有dict有键。例如,key2将采用值“SchemeCode”,它是一个字符串,而您调用的是
key2.keys()
-字符串没有keys()方法,因此会出现错误。你可能只想print(key2)
。在编辑2
我不确定我是否完全理解您需要什么,但是下面将在主指令的第二级打印一个没有重复项的键列表
如果你想任意深入,你需要使用一个递归调用自己的函数。在
相关问题 更多 >
编程相关推荐