在Python中删除嵌套字典键的外部

时间:2016-12-25 08:39:43

标签: python dictionary

我在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'例如

我的字典中有一棵树,我想直到我要去一片树叶。

有人有想法吗?

1 个答案:

答案 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'