json 删除dictionary中的键,但保留值

nfg76nw0  于 2023-05-02  发布在  其他
关注(0)|答案(2)|浏览(164)

对于输入json

{
  "dataSet": {
    "integerFields": {
      "patient_display_id": "1",
      "ehmrn": "123",
      "enctrid": "456"
    },
     "DecimalFields": {
      "class": "1",
      "section": "123",
      "enctrid": "456"
    }
  }
}

我想删除***integerFields***,但保留它的值,输出如下。但保留其余的田地

{
  "dataSet": {
      "patient_display_id": "1",
      "ehmrn": "123",
      "enctrid": "456",
      "DecimalFields": {
      "class": "1",
      "section": "123",
      "enctrid": "456"
    }
  }
}
31moq8wy

31moq8wy1#

如果你只是把它的值赋给包含它的键,它就会被覆盖

inputDict = {'entity': {'dataSet': {'integerFields': {'patient_display_id': '1'}}}}
inputDict['entity']['dataSet'] = inputDict['entity']['dataSet']['integerFields']
print(inputDict)
ljo96ir5

ljo96ir52#

integerFields字典的键与dataSet字典合并,然后删除integerFields键:

import json

input_json = '''\
{
  "dataSet": {
    "integerFields": {
      "patient_display_id": "1",
      "ehmrn": "123",
      "enctrid": "456"
    },
    "DecimalFields": {
      "class": "1",
      "section": "123",
      "enctrid": "456"
    }
  }
}'''
data = json.loads(input_json)
data['dataSet'].update(data['dataSet']['integerFields'])
del data['dataSet']['integerFields']
print(json.dumps(data, indent=2))

输出:

{
  "dataSet": {
    "DecimalFields": {
      "class": "1",
      "section": "123",
      "enctrid": "456"
    },
    "patient_display_id": "1",
    "ehmrn": "123",
    "enctrid": "456"
  }
}

相关问题