如何从JSON/dictionary打印相同/重复键的所有值?

如何从JSON/dictionary打印相同/重复键的所有值?,json,python-3.x,dictionary,key,Json,Python 3.x,Dictionary,Key,从下面的字典中,如何仅打印“test1”值,假设有多个“test1”键,如何打印其所有值 data = {"test1" : "PASS", "test2" : "FAILED", "test3" : "PASS", "test1" : "FAILED"} 这样,它在索引0处为test1提供输出通过,在索引3处为test1提供输出失败,

从下面的字典中,如何仅打印“test1”值,假设有多个“test1”键,如何打印其所有值

data = {"test1" : "PASS", "test2" : "FAILED", "test3" : "PASS", "test1" : "FAILED"}
这样,它在索引0处为test1提供输出通过,在索引3处为test1提供输出失败,因为字典只计算最后一个最大值,在本例中失败
所需输出:

PASS
FAILED

任何解决方法?

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

比如说,对于
data=[(“test1”,“通过”),(“test2”,“失败”),(“test3”,“通过”),(“test1”,“失败”)]

然后这样做:

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']

会给你你想要的结果-测试的所有结果

你不能有这样的字典。备选方案-您可以尝试
defaultdict(list)
。不,我没有得到所需的输出,您能用完整的代码编辑它吗?因为对我来说,同样的事情正在发生,就像我上面提到的,我已经编辑了它,所以test1的结果将返回“通过”、“失败”哦,是的,谢谢!我猜之前的ans有“为了测试,结果在测试中*:”这让我怀疑它是否正确,再次非常感谢