我正在使用python中的字典,但似乎无法找到解决方案。
我的字典看起来像这样:
res = result['result']._asdict()
res.keys()
['EGOVMON.CRE.1.2', 'EGOVMON.PDF.03', 'EGOVMON.PDF.05', 'WCAG.PDF.14', 'EGOVMON.TITLE.1.2']
首先,我想过滤密钥。我只想要以“EGOVMON.PDF”和“WCAG.PDF”开头的密钥。这是我到目前为止所做的:
filterkeys=[v for k,v in res.items() if k.startswith('EGOVMON.PDF') or k.startswith('WCAG.PDF')]
print filterkeys会给我一个新词典:
[[<SOAPpy.Types.structType item at 140493364567432>: {'column': 1, 'line': 0, 'type': 'assertion', 'mode': 'automatic', 'result': 1.0}], [<SOAPpy.Types.structType item at 140493353171712>: {'column': 1, 'line': 0, 'type': 'assertion', 'mode': 'automatic', 'result': 0.0}]
现在这里是我被困住的地方。我不知道如何迭代这本词典。我的主要目标是使用关键'结果'及其值。
更清楚:如何输出以下内容:
EGOVMON.PDF.03 result: 1.0
WCAG.PDF.14 result: 0.0
提前致谢。
答案 0 :(得分:0)
使用说明
filterkeys=[v for k,v in res.items() if k.startswith('EGOVMON.PDF') or k.startswith('WCAG.PDF')]
您正在生成值列表,而不是键列表。它应该是......
filterkeys=[k for k,v in res.items() if k.startswith('EGOVMON.PDF') or k.startswith('WCAG.PDF')]
要获取字段“结果”的值,请从res
词典中读取...
for k in filterkeys:
print(k, res[k]['result']) #with the formatting you need