我正在使用Python Unittest来运行它生成的nose.xml报告的测试用例,我已经解析并创建了字典,如:
{'abc_1': {'duration': 788, 'processed': 0}, 'abc_2': {'duration': 632, 'processed': 0}, 'abc_3': {'duration': 2652, 'processed': 0}, 'abc_4': {'duration': 454, 'processed': 0}, 'abc_5': {'duration': 21, 'processed': 0}, 'abc_6': {'duration': 15, 'processed': 0}, 'abc_7': {'duration': 1200, 'processed': 0}, 'abc_8': {'duration': 8243, 'processed': 0}, 'abc_9': {'duration': 34, 'processed': 0}, 'abc_10': {'duration': 10829, 'processed': 0}, 'abc_11': {'duration': 3879, 'processed': 0}, 'abc_12': {'duration': 121, 'processed': 0}, 'abc_13': {'duration': 684, 'processed': 0}, 'abc_14': {'duration': 1500, 'processed': 0}, 'abc_15': {'duration': 1517, 'processed': 0}, 'abc_16': {'duration': 186, 'processed': 0}, 'abc_17': {'duration': 2033, 'processed': 0}, 'abc_18': {'duration': 1243, 'processed': 0}}
下面, abc _ * 是脚本名称,持续时间是该特定脚本执行所用的总时间。 (例如: - abc_18总共跑了1243秒)。
现在,我想根据时间(持续时间)将所有脚本划分为4个(或5个或6个或动态)不同的组,这样所有组都有相同的时间。
像:
Grp1 - abc_18,abc_1,abc_4
Grp2 - abc_17,abc_10,abc_11
Grp3 - abc_2,abc_3
如果有人可以帮助我重新编写该代码,那么这将是很有帮助的。
答案 0 :(得分:0)
您的示例中的预期结果似乎与您想要的结果不符(abc_18,abc_1,abc_4不具有相同的持续时间)。你能做的就是使用Dict理解
因此,在您的情况下,基本上您可以通过指定字段的值' duration'来过滤成员。通过这个(python 2.7及以上):
>>> print {k : v for k, v in a.iteritems() if v['duration'] == 8243}
结果:
{'abc_8': {'duration': 8243, 'processed': 0}}
希望它有所帮助。