根据另一个值从字典中获取所需的值

时间:2013-10-28 07:11:05

标签: python dictionary

我从字典中得到以下输出。

{'001': {'desc': 'Verify all commands.', 'result': 'P', 'name': '001', 'run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'}, 
'002': {'desc': 'Verify all commands.', 'result': 'F', 'name': '002', 'run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'}}

我想要的是从name result获取F? 如果有人能告诉我实现所需输出的方法,将会很有帮助。

2 个答案:

答案 0 :(得分:2)

迭代dict.values

for v in my_dict.values():
   if v['result'] == 'F':
      print v['name']

<强>演示:

my_dict = {'001': {'desc': 'Verify all commands.', 'result': 'P', 'name': '001','run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'},
           '002': {'desc': 'Verify all commands.', 'result': 'F', 'name': '002', 'run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'}          }
for v in my_dict.values():
   if v['result'] == 'F':
      print v['name']

<强>输出:

002

答案 1 :(得分:2)

这将是names所有result F

的所有data = {'001': {'desc': 'Verify all commands.', 'result': 'P', 'name': '001', 'run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'}, '002': {'desc': 'Verify all commands.', 'result': 'F', 'name': '002', 'run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'}, '003': {'desc': 'Verify all commands.', 'result': 'F', 'name': '003', 'run_time': '00:00:30', 'start_time': '1382943624', 'end_time': '1382943654'}} print [value["name"] for key, value in data.items() if value["result"] == "F"] 列表
['002', '003']

<强>输出

{{1}}