如何在python中对对象数组应用过滤器

2024-05-14 01:02:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一名Java开发人员,试图用python编写脚本。我有以下JSON:(json1)

{
    "name": "Data",
    "id": "9c27ea56-6f9e-4694-a088-c1423c114e88",
    "nodes": [
        {
            "id": "6eb8cb19-53e5-4f1d-88f3-119a3ee09b5d",
            "properties": [
                {
                    "visible": true,
                    "uniqueness": true,
                    "id": "ab6d8974-59a2-4f5d-b026-d9ed54886fa8",
                    "dataType": "String",
                    "shortName": "id",
                    "longName": "id"
                },
                {
                    "visible": true,
                    "uniqueness": false,
                    "id": "24f5547e-c360-4293-9e67-10b19d38c774",
                    "dataType": "String",
                    "shortName": "event_id",
                    "longName": "event_id"
                },
                {
                    "visible": true,
                    "uniqueness": false,
                    "id": "2929d02b-950f-4495-8b36-04ea4c142f8d",
                    "dataType": "String",
                    "shortName": "event_name",
                    "longName": "event_name"
                },
                {
                    "visible": true,
                    "uniqueness": false,
                    "id": "3456d02b-950f-4495-8b36-04ea4c142f8d",
                    "dataType": "String",
                    "shortName": "event_date",
                    "longName": "Event Date"
                }
            ]
        }
    ]
}

我有另一个相同的json,但有一些修改。类似这样的内容:(json2)

{
    "name": "Data",
    "id": "9c27ea56-6f9e-4694-a088-c1423c114e88",
    "nodes": [
        {
            "id": "6eb8cb19-53e5-4f1d-88f3-119a3ee09b5d",
            "properties": [
                {
                    "visible": true,
                    "uniqueness": true,
                    "id": "ab6d8974-59a2-4f5d-b026-d9ed54886fa8",
                    "dataType": "String",
                    "shortName": "id",
                    "longName": "id"
                },
                {
                    "visible": true,
                    "uniqueness": false,
                    "id": "24f5547e-c360-4293-9e67-10b19d38c774",
                    "dataType": "String",
                    "shortName": "event_id",
                    "longName": "event_id"
                },
                {
                    "visible": true,
                    "uniqueness": false,
                    "id": "2929d02b-950f-4495-8b36-04ea4c142f8d",
                    "dataType": "String",
                    "shortName": "event_name",
                    "longName": "Event Name"
                },
                {
                    "visible": true,
                    "uniqueness": false,
                    "id": "123245g-950f-4495-8b36-04ea4c142f8d",
                    "dataType": "String",
                    "shortName": "event_status",
                    "longName": "Event Status"
                }
            ]
        }
    ]
}

现在在json2中,除了json1之外,我还在属性数组中添加了更多的对象

当我在“properties”数组上迭代json1时,我想检查它是否存在于“properties”的json2数组中。为了检查这一点,我想验证shortName是否相等(在json1属性数组和json2属性数组中)

这里json1被认为是基本对象

然后,如何基于shortName(来自“properties”数组)过滤“properties”数组。As属性是一个对象数组


Tags: nameeventidfalsetruestring数组properties
1条回答
网友
1楼 · 发布于 2024-05-14 01:02:53

最方便的方法是使用json.loads,这样就可以得到键、值pares

# load the json object
jsonlist = json.loads(your_json)

#Show the list from properties 
print(jsonlist['properties'])

#get the kets from the json list 
for field in jsonlist['properties']:
    for key, value in field.items():
        print(key, value)

相关问题 更多 >