首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用公共值合并Python中的两个JSON数组

使用公共值合并Python中的两个JSON数组
EN

Stack Overflow用户
提问于 2022-02-17 10:30:48
回答 1查看 53关注 0票数 0

我想请您帮助解决以下问题:我有两个从API调用中生成的JSON文件,它们应该使用一个唯一的值,即序列号进行组合。第一个JSON文件,它是以以下语法重复的一千行网络设备上行链路列表:

代码语言:javascript
复制
{
    "serial": "ABCD-ABCD-ABCD",
    "model": "XYZ",
    "uplinks": [
        {
            "interface": "wan1",
            "status": "active",
            "ip": "10.10.10.2",
            "gateway": "10.10.10.2",
            "primaryDns": "8.8.8.8",
            "secondaryDns": "8.8.4.4",
            "ipAssignedBy": "dhcp"
        },
        {
            "interface": "wan2",
            "status": "not connected",
            "ip": "10.20.10.2",
            "gateway": "10.20.10.2",
            "primaryDns": "8.8.8.8",
            "secondaryDns": "8.8.4.4",
            "ipAssignedBy": "dhcp"
        }
    ]
}

第二个JSON文件,它是以以下语法重复的一千行设备库存列表:

代码语言:javascript
复制
 {
   "name": "ABC",
   "serial": "ABCD-ABCD-ABCD",
   "mac": "FF:FF:FF:FF:FF:FF",
   "networkId": "12412345235342",
   "productType": "appliance",
   "lanIp": "10.10.10.2",
   "configurationUpdatedAt": "2022-01-30T17:26:07Z",
   "url": "https://xyz"
}

我想要实现的是使用序列号作为匹配值将JSON 1“上行”部分插入到JSON2中:

代码语言:javascript
复制
{
"name": "ABC",
"serial": "ABCD-ABCD-ABCD",
"mac": "FF:FF:FF:FF:FF:FF",
"networkId": "12412345235342",
"productType": "appliance",
"lanIp": "10.10.10.2",
"configurationUpdatedAt": "2022-01-30T17:26:07Z",
"url": "https://xyz",
"uplinks": [
        {
            "interface": "wan1",
            "status": "active",
            "ip": "10.10.10.2",
            "gateway": "10.10.10.2",
            "primaryDns": "8.8.8.8",
            "secondaryDns": "8.8.4.4",
            "ipAssignedBy": "dhcp"
        },
        {
            "interface": "wan2",
            "status": "not connected",
            "ip": "10.20.10.2",
            "gateway": "10.20.10.2",
            "primaryDns": "8.8.8.8",
            "secondaryDns": "8.8.4.4",
            "ipAssignedBy": "dhcp"
        }
    ]
}

谢谢你的帮助!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-17 11:00:14

代码语言:javascript
复制
json1={
    "serial": "ABCD-ABCD-ABCD",
    "model": "XYZ",
    "uplinks": [
        {
            "interface": "wan1",
            "status": "active",
            "ip": "10.10.10.2",
            "gateway": "10.10.10.2",
            "primaryDns": "8.8.8.8",
            "secondaryDns": "8.8.4.4",
            "ipAssignedBy": "dhcp"
        },
        {
            "interface": "wan2",
            "status": "not connected",
            "ip": "10.20.10.2",
            "gateway": "10.20.10.2",
            "primaryDns": "8.8.8.8",
            "secondaryDns": "8.8.4.4",
            "ipAssignedBy": "dhcp"
        }
    ]
}

json2= {
   "name": "ABC",
   "serial": "ABCD-ABCD-ABCD",
   "mac": "FF:FF:FF:FF:FF:FF",
   "networkId": "12412345235342",
   "productType": "appliance",
   "lanIp": "10.10.10.2",
   "configurationUpdatedAt": "2022-01-30T17:26:07Z",
   "url": "https://xyz"
}
if json1['serial']==json2['serial']:
    json2['uplinks']=json1['uplinks']

我希望这能解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71156414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档