【问题标题】:How to print all values of same/duplicate keys from JSON/dictionary?如何从 JSON/字典打印相同/重复键的所有值?
【发布时间】:2021-08-17 08:47:00
【问题描述】:

从下面的字典中,我怎样才能只打印 'test1' 值,假设会有多个 'test1' 键,我怎样才能打印它的所有值?

data = {"test1" : "PASS", "test2" : "FAILED", "test3" : "PASS", "test1" : "FAILED"}

这样它在索引 0 处为 test1 提供输出 PASS,在索引 3 处为 test1 提供 FAIL,因为字典只计算最后一个最大值,在这种情况下为 FAILED。
所需输出:

PASS
FAILED

有什么解决办法吗?

【问题讨论】:

  • 你不可能有这样的字典。另一种选择——你可以试试defaultdict(list)

标签: json python-3.x dictionary key


【解决方案1】:

字典只能包含唯一键。因此,在您的情况下,data 不能是字典。您可以将data 设为列表或默认字典。

说,data = [("test1","PASS"), ("test2","FAILED"),("test3","PASS"), ("test1", "FAILED")]

然后这样做:

from collections import defaultdict

test_result = defaultdict(list) 
for test, result in data:
    test_result[test].append(result) 
print(test_result["test1"]) # gives ['PASS','FAILED']

将为您提供您正在寻找的结果 - 测试的所有结果

【讨论】:

  • 不,我没有得到想要的输出,你能用完整的代码编辑它吗?因为对我来说,就像我上面提到的那样发生同样的事情
  • 我已经编辑过了,所以 test1 的结果会返回 'pass', 'fail'
  • 哦,是的,谢谢!我猜前面的答案有“for test, result in test_result*:”这让我怀疑它是否正确,再次非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
相关资源
最近更新 更多