从有条件的旧词典中得到新的词典?

kn3*_*n3l 0 python dictionary

我是一本字典(字典字典)

    old_dict = {
    '1':{'A':1, 'check': 0, 'AA':2, 'AAA':3 , 'status':0},
    '2':{'A':11,'check': 0, 'AA':22, 'AAA':33 ,'status':1},
    '3':{'A':111,'check': 0, 'AA':222, 'AAA':333 ,'status':0},
    '4':{'A':1111,'check': 1, 'AA':2222, 'AAA':3333 ,'status':0},
    }
Run Code Online (Sandbox Code Playgroud)

我想在['check']!= 0之前和['status']之前得到一本新词典!= 0所以将会是

    new_dict = {
    '1':{'A':1, 'check': 0, 'AA':2, 'AAA':3 , 'status':0},
    '3':{'A':111,'check': 0, 'AA':222, 'AAA':333 ,'status':0},
    }
Run Code Online (Sandbox Code Playgroud)

如果是列表,我确实喜欢这个

    ouputdata = [d for d in data if d[1] == ' 0' and d[6]==' 0']
Run Code Online (Sandbox Code Playgroud)

我试过了

for field in old_dict.values():
       if field['check'] !=0 and field['status'] != 0
          line = field['A'] + field['AA']+field['AAA']
         #write these line to file
Run Code Online (Sandbox Code Playgroud)

如何使用字典.你能帮我用字典做些吗?

Ant*_*wns 5

从yu_sha的答案中删除[]可以避免构建虚拟列表:

new_dict = dict( (k,v) for k,v in old_dict.iteritems() 
                         if v["status"] != 0 and v["check"] != 0 )
Run Code Online (Sandbox Code Playgroud)

要么

new_dict = dict(item for item in old_dict.iteritems() 
                         if item[1]["status"] != 0 and item[1]["check"] != 0)
Run Code Online (Sandbox Code Playgroud)


ste*_*eha 5

new_dict = {}
for k, d in old_dict.iteritems():
    if d['check'] == 0 and d['status'] == 0:
        new_dict[k] = d
Run Code Online (Sandbox Code Playgroud)