some_dict = {'tag': 'Building', 'attrib': ['CadastralNumber', 'DateCreated', 'FoundationDate'], 'CadastralBlock': {'tag': 'CadastralBlock', 'attrib': []}, 'ParentCadastralNumbers': {'tag': 'ParentCadastralNumbers', 'attrib': [], 'CadastralNumber': {'tag': 'CadastralNumber', 'attrib': []}}, 'PrevCadastralNumbers': {'tag': 'PrevCadastralNumbers', 'attrib': [], 'CadastralNumber': {'tag': 'CadastralNumber', 'attrib': []}}, 'PreviouslyPosted': {'tag': 'PreviouslyPosted', 'attrib': []}, 'Name': {'tag': 'Name', 'attrib': []}, 'ObjectType': {'tag': 'ObjectType', 'attrib': []}, 'AssignationBuilding': {'tag': 'AssignationBuilding', 'attrib': []}, 'ElementsConstruct': {'tag': 'ElementsConstruct', 'attrib': [], 'Material': {'tag': 'Material', 'attrib': ['Wall']}}, 'ExploitationChar': {'tag': 'ExploitationChar', 'attrib': ['YearBuilt', 'YearUsed']}, 'Floors': {'tag': 'Floors', 'attrib': ['Floors', 'UndergroundFloors']}, 'Area': {'tag': 'Area', 'attrib': []}, 'Location': {'tag': 'Location', 'attrib': ['AddressOrLocation'], 'FIAS': {'tag': 'FIAS', 'attrib': []}, 'OKATO': {'tag': 'OKATO', 'attrib': []}, 'KLADR': {'tag': 'KLADR', 'attrib': []}, 'OKTMO': {'tag': 'OKTMO', 'attrib': []}, 'PostalCode': {'tag': 'PostalCode', 'attrib': []}, 'RussianFederation': {'tag': 'RussianFederation', 'attrib': []}, 'Region': {'tag': 'Region', 'attrib': []}, 'District': {'tag': 'District', 'attrib': ['Name', 'Type']}, 'City': {'tag': 'City', 'attrib': ['Name', 'Type']}, 'UrbanDistrict': {'tag': 'UrbanDistrict', 'attrib': ['Name', 'Type']}, 'SovietVillage': {'tag': 'SovietVillage', 'attrib': ['Name', 'Type']}, 'Locality': {'tag': 'Locality', 'attrib': ['Name', 'Type']}, 'Street': {'tag': 'Street', 'attrib': ['Name', 'Type']}, 'Level1': {'tag': 'Level1', 'attrib': ['Type', 'Value']}, 'Level2': {'tag': 'Level2', 'attrib': ['Type', 'Value']}, 'Level3': {'tag': 'Level3', 'attrib': ['Type', 'Value']}, 'Apartment': {'tag': 'Apartment', 'attrib': ['Type', 'Value']}, 'Other': {'tag': 'Other', 'attrib': []}, 'Note': {'tag': 'Note', 'attrib': []}, 'ReadableAddress': {'tag': 'ReadableAddress', 'attrib': []}}, 'ObjectPermittedUses': {'tag': 'ObjectPermittedUses', 'attrib': [], 'ObjectPermittedUse': {'tag': 'ObjectPermittedUse', 'attrib': []}}, 'CadastralCost': {'tag': 'CadastralCost', 'attrib': ['Value'], 'DateValuation': {'tag': 'DateValuation', 'attrib': []}, 'DateEntering': {'tag': 'DateEntering', 'attrib': []}, 'DateApproval': {'tag': 'DateApproval', 'attrib': []}, 'ApplicationDate': {'tag': 'ApplicationDate', 'attrib': []}, 'RevisalStatementDate': {'tag': 'RevisalStatementDate', 'attrib': []}, 'ApplicationLastDate': {'tag': 'ApplicationLastDate', 'attrib': []}, 'ApprovalDocument': {'tag': 'ApprovalDocument', 'attrib': [], 'CodeDocument': {'tag': 'CodeDocument', 'attrib': []}, 'Name': {'tag': 'Name', 'attrib': []}, 'Series': {'tag': 'Series', 'attrib': []}, 'Number': {'tag': 'Number', 'attrib': []}, 'Date': {'tag': 'Date', 'attrib': []}, 'IssueOrgan': {'tag': 'IssueOrgan', 'attrib': []}, 'Desc': {'tag': 'Desc', 'attrib': []}}}, 'SubBuildings': {'tag': 'SubBuildings', 'attrib': [], 'SubBuilding': {'tag': 'SubBuilding', 'attrib': ['NumberRecord', 'DateCreated'], 'Area': {'tag': 'Area', 'attrib': []}, 'Encumbrances': {'tag': 'Encumbrances', 'attrib': [], 'Name': {'tag': 'Name', 'attrib': []}, 'Type': {'tag': 'Type', 'attrib': []}, 'Registration': {'tag': 'Registration', 'attrib': [], 'RightNumber': {'tag': 'RightNumber', 'attrib': []}, 'RegistrationDate': {'tag': 'RegistrationDate', 'attrib': []}}, 'Document': {'tag': 'Document', 'attrib': [], 'CodeDocument': {'tag': 'CodeDocument', 'attrib': []}, 'Name': {'tag': 'Name', 'attrib': []}, 'Series': {'tag': 'Series', 'attrib': []}, 'Number': {'tag': 'Number', 'attrib': []}, 'Date': {'tag': 'Date', 'attrib': []}, 'IssueOrgan': {'tag': 'IssueOrgan', 'attrib': []}, 'Desc': {'tag': 'Desc', 'attrib': []}}}}}, 'FlatsCadastralNumbers': {'tag': 'FlatsCadastralNumbers', 'attrib': [], 'CadastralNumber': {'tag': 'CadastralNumber', 'attrib': []}}, 'CarParkingSpacesCadastralNumbers': {'tag': 'CarParkingSpacesCadastralNumbers', 'attrib': [], 'CadastralNumber': {'tag': 'CadastralNumber', 'attrib': []}}, 'UnitedCadastralNumber': {'tag': 'UnitedCadastralNumber', 'attrib': [], 'CadastralNumber': {'tag': 'CadastralNumber', 'attrib': []}, 'Purpose': {'tag': 'Purpose', 'attrib': []}, 'Name': {'tag': 'Name', 'attrib': []}}, 'FacilityCadastralNumber': {'tag': 'FacilityCadastralNumber', 'attrib': [], 'CadastralNumber': {'tag': 'CadastralNumber', 'attrib': []}, 'Purpose': {'tag': 'Purpose', 'attrib': []}, 'Name': {'tag': 'Name', 'attrib': []}}, 'CulturalHeritage': {'tag': 'CulturalHeritage', 'attrib': [], 'InclusionEGROKN': {'tag': 'InclusionEGROKN', 'attrib': [], 'RegNum': {'tag': 'RegNum', 'attrib': []}, 'ObjCultural': {'tag': 'ObjCultural', 'attrib': []}, 'NameCultural': {'tag': 'NameCultural', 'attrib': []}}, 'AssignmentEGROKN': {'tag': 'AssignmentEGROKN', 'attrib': [], 'RegNum': {'tag': 'RegNum', 'attrib': []}, 'ObjCultural': {'tag': 'ObjCultural', 'attrib': []}, 'NameCultural': {'tag': 'NameCultural', 'attrib': []}}, 'RequirementsEnsure': {'tag': 'RequirementsEnsure', 'attrib': []}, 'Document': {'tag': 'Document', 'attrib': [], 'CodeDocument': {'tag': 'CodeDocument', 'attrib': []}, 'Name': {'tag': 'Name', 'attrib': []}, 'Series': {'tag': 'Series', 'attrib': []}, 'Number': {'tag': 'Number', 'attrib': []}, 'Date': {'tag': 'Date', 'attrib': []}, 'IssueOrgan': {'tag': 'IssueOrgan', 'attrib': []}, 'Desc': {'tag': 'Desc', 'attrib': []}}}}
def print_dict_recursive(d):
list = []
for i in d.items():
if isinstance(i[1], dict):
# print(i[1]['tag'], i[1]['attrib'])
list.append(i[1]['tag'])
return list
list = print_dict_recursive(some_dict)
for i in list:
print({i: print_dict_recursive(some_dict[i])})
我有一个带有嵌套结构的字典,我试图迭代整个结构并迭代所有 {key: value} 对。上面的代码仅影响两层嵌套并产生以下输出:
{'CadastralBlock': []}
{'ParentCadastralNumbers': ['CadastralNumber']}
{'PrevCadastralNumbers': ['CadastralNumber']}
{'PreviouslyPosted': []}
{'Name': []}
{'ObjectType': []}
{'AssignationBuilding': []}
{'ElementsConstruct': ['Material']}
{'ExploitationChar': []}
{'Floors': []}
{'Area': []}
{'Location': ['FIAS', 'OKATO', 'KLADR', 'OKTMO', 'PostalCode', 'RussianFederation', 'Region', 'District', 'City', 'UrbanDistrict', 'SovietVillage', 'Locality', 'Street', 'Level1', 'Level2', 'Level3', 'Apartment', 'Other', 'Note', 'ReadableAddress']}
{'ObjectPermittedUses': ['ObjectPermittedUse']}
{'CadastralCost': ['DateValuation', 'DateEntering', 'DateApproval', 'ApplicationDate', 'RevisalStatementDate', 'ApplicationLastDate', 'ApprovalDocument']}
{'SubBuildings': ['SubBuilding']}
{'FlatsCadastralNumbers': ['CadastralNumber']}
{'CarParkingSpacesCadastralNumbers': ['CadastralNumber']}
{'UnitedCadastralNumber': ['CadastralNumber', 'Purpose', 'Name']}
{'FacilityCadastralNumber': ['CadastralNumber', 'Purpose', 'Name']}
{'CulturalHeritage': ['InclusionEGROKN', 'AssignmentEGROKN', 'RequirementsEnsure', 'Document']}
Process finished with exit code 0
同时,有些嵌套键没有按照上面的例子显示(例如,'ApprovalDocument'键等)。现阶段我已经进入了死胡同,请专家帮忙。
1 个回答