我在python中有一个嵌套字典 - {a:{d:{v:2,c:3}}} 我想编写一个获取密钥的功能 - 比如' a' 并返回一本字典: {d:{v:2,c:3}} 只是里面的
我尝试使用:
def findkeys(node, kv):
if isinstance(node, list):
for i in node:
for x in findkeys(i, kv):
yield x
elif isinstance(node, dict):
if kv in node:
yield node[kv]
for j in node.values():
for x in findkeys(j, kv):
yield x
但是它将它作为一个列表而不是一个字典返回,因此它只有列表[{d:{v:2, c:3}}]
中的一个项目,因此我无法访问它后键入' c'例如
我的字典中有一棵树,我想直到我要去一片树叶。
有人有想法吗?
答案 0 :(得分:3)
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {ContactListCopmponent} from './contacts/contact-list.component';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
@NgModule({
imports: [
BrowserModule,
FormsModule
],
declarations: [
AppComponent,ContactListCopmponent
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
如果def get_val(dct,key):
for k, v in dct.iteritems():
if key in dct.keys():
print dct[key]
else :
for d in dct.values():
get_val(d, key)
dct = {'a': {'d':{'v':2, 'c':3}}}
key='a'
get_val(dct,key)
,则输出= key='a'
如果{'d':{'v':2, 'c':3}}
,则输出= key='d'