在嵌套字典中查找键的对应值

时间:2020-09-16 15:15:49

标签: python python-3.x dictionary

我有一个嵌套的字典,在其中我试图打印嵌套键的相应值,而无需输入最外面的数字键。

例如如果roomname位于嵌套嵌套字典中,则打印房间区域。

我的字典设置如下:

d = {0: {'RoomName': 'PSC', 'MinArea': '28', 'MinRoomDim': 'null', 'MinDoorWidth': '900', 'MinDoorHeight': '2100', 'NoofDoorLeaves': '1', 'DoorMaterial': 'Glass', 'ReferenceLocation': 'LTA ADC SECTION 3.1 CLAUSE 5.1', 'RoomSpecificInfo': 'Refer to PSC design guidelines'}, 
     1: {'RoomName': 'SMR', 'MinArea': '8', 'MinRoomDim': 'null', 'MinDoorWidth': '900', 'MinDoorHeight': '2100', 'NoofDoorLeaves': '1', 'DoorMaterial': 'Glass', 'ReferenceLocation': 'LTA ADC SECTION 3.1 CLAUSE 5.2', 'RoomSpecificInfo': 'null'}, 
     2: {'RoomName': 'FIRST AID RM', 'MinArea': '7.5', 'MinRoomDim': '3.0m x 2.5m', 'MinDoorWidth': '1000', 'MinDoorHeight': '2100', 'NoofDoorLeaves': '1', 'DoorMaterial': 'null', 'ReferenceLocation': 'LTA ADC SECTION 3.1 CLAUSE 5.3', 'RoomSpecificInfo': 'null'},...

到目前为止,我设法找到的所有解决方案均适用于典型词典,而该解决方案不适用于上述嵌套词典。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以像这样打印嵌套词典:

for i,j in d.items():
    for m,n in j.items():
        print(m,n)

其中m是键,n是嵌套字典的值

答案 1 :(得分:0)

读取json文件,然后使用多个负载和内部的get()在嵌套的json中获取所需的值,例如获取键“ 1”以获取RoomName

json.loads(json.loads(x).get("1","{}")).get("RoomName"))