python - 如何在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 之外的更多对象。
当我在“属性”数组上迭代 json1 时,我想检查它是否存在于“属性”的 json2 数组中。为了检查这一点,我想验证 shortName 是否相等(在 json1 属性数组和 json2 属性数组中)
这里 json1 被认为是基础对象。
那么如何根据shortName(来自“properties”数组)过滤“properties”数组。作为属性是一个对象数组。
解决方案
最方便的方法是使用 json.loads,这样你就可以得到然后得到 key,value 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)
推荐阅读
- java - Java过滤器查找每个城市最昂贵的房子
- telegram-bot - 如何检查我的电报机器人中的管理员状态?
- typescript - React-Redux、Yup 和 formik 的表单验证问题
- javascript - Retrieve URL from uploaded image on Firebase
- javascript - 访问 Observable 数组的 _latestValue 元素
- wordpress - 付款完成后在wordpress中创建用户
- git - Mercurial 和 Git (2020) 有什么区别?
- django - 如何从 HTML 表单输入值调用模型方法
- d3.js - d3-drag - 在 d3v5 中使用拖动重新缩放 y 轴
- python - 如何切换任何给定列表的元素?