使用python从List中提取Json数据

时间:2017-12-14 05:25:48

标签: python json

我在列表中有这个示例json数据:

$ENV{LOGNAME}

我需要一种方法来根据'Name'键从列表中的元素中提取所有键值对。如果我的变量='John_Doe',那么脚本应该只返回与John_Doe相关的值,i,只有以下值:

ccperl yourScript.pl 

3 个答案:

答案 0 :(得分:1)

只需提取与关键字"John_Doe"相关联的值为"Name"的所有词典:

print([d for d in data if d['Name'] == "John_Doe"])
# [{ "Name": "John_Doe", "Age" : 25 }]

filter()

print(list(filter(lambda x : x['Name'] == "John_Doe", data)))
# [{ "Name": "John_Doe", "Age" : 25 }]

答案 1 :(得分:1)

如果您需要的是Name元素匹配John_Doe的字典,那么:

matches = [m for m in data if "Name" in m and m["Name"] == "John_Doe"]

您可以展开此列表理解以查看其功能:

matches = []
for m in data:
    if "Name" in m and m["Name"] == "John_Doe":
        matches.append[m]

答案 2 :(得分:1)

def get_details(data, name):
    for i in data:
        if i['Name'] == name:
            return i
    return {}

data = [{"Name": "John_Doe", "Age" : 25 },{"Name": "Jane_Roe", "Age" : 26 }]
name = "John_Doe"
get_details(data, name)

输出:

{'Age': 25, 'Name': 'John_Doe'}