首页 > 解决方案 > 将键值从一个json依次附加到另一个json

问题描述

我有两个 JSON 对象如下

一个.json

[
  {
    "name": "testname",
    "phone": 212121,
    "seq" : 1
  },
  {
    "name": "testname1",
    "phone": 2146354564,
    "seq" : 2
  },
  {
    "name": "testname2",
    "phone": 12312,
    "seq" : 3
  },
  {
    "name": "testname1",
    "phone": 211221,
    "seq" : 4
  },
  {
    "name": "testname3",
    "phone": 10218550,
    "seq" : 5
  },
  {
    "name": "1testname",
    "phone": 212121,
    "seq" : 6
  },
  {
    "name": "testname12",
    "phone": 2146354564,
    "seq" : 7
  },
  {
    "name": "testname255",
    "phone": 12312,
    "seq" : 8
  },
  {
    "name": "testname123",
    "phone": 211221,
    "seq" : 9
  },
  {
    "name": "testname2133",
    "phone": 10218550,
    "seq" : 10
  }
]

二.json

[ {
  "success" : true,
  "created" : true,
  "id" : "123",
  "errors" : [ ]
}, {
  "success" : true,
  "created" : true,
  "id" : "12121",
  "errors" : [ ]
},{
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
}, {
  "success" : false,
  "created" : false,
  "id" : null,
  "errors" : [ {
    "message" : "Use one of these records?",
    "fields" : [ ],
    "statusCode" : "DUPLICATES_DETECTED",
    "extendedErrorDetails" : null
  } ]
} ]

我以与 one.json 相同的顺序获得 two.json(在某些功能后输出)

这是我想要实现的最终输出 json

最终的.json

[
  {
    "name": "testname",
    "phone": 212121,
    "seq": 1,
    "success": true,
    "created": true,
    "id": "11",
    "errors": []
  },
  {
    "name": "testname1",
    "phone": 2146354564,
    "seq": 2,
    "success": true,
    "created": true,
    "id": "323",
    "errors": []
  },
  {
    "name": "testname2",
    "phone": 12312,
    "seq": 3,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  },
  {
    "name": "testname1",
    "phone": 211221,
    "seq": 4,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null,
        "success": false,
        "created": false,
        "id": null,
        "errors": [
          {
            "message": "Use one of these records?",
            "fields": [],
            "statusCode": "DUPLICATES_DETECTED",
            "extendedErrorDetails": null
          }
        ]
      }
    ]
  },
  {
    "name": "testname3",
    "phone": 10218550,
    "seq": 5,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  },
  {
    "name": "1testname",
    "phone": 212121,
    "seq": 6,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  },
  {
    "name": "testname12",
    "phone": 2146354564,
    "seq": 7,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  },
  {
    "name": "testname255",
    "phone": 12312,
    "seq": 8,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  },
  {
    "name": "testname123",
    "phone": 211221,
    "seq": 9,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  },
  {
    "name": "testname2133",
    "phone": 10218550,
    "seq": 10,
    "success": false,
    "created": false,
    "id": null,
    "errors": [
      {
        "message": "Use one of these records?",
        "fields": [],
        "statusCode": "DUPLICATES_DETECTED",
        "extendedErrorDetails": null
      }
    ]
  }
]

所以输出的顺序将与输入序列的顺序相同。所以我需要将 two.json 键值以相同的顺序附加到 one.json

请建议我如何实现这一目标。

标签: jsonpython-3.x

解决方案


你可以试试:

output = []
for a,b in zip(one_json, two_json):
    a.update(b)
    output.append(a)
print(output)

推荐阅读