如何使用Python将一个JSON对象的值转换为另一个JSON对象的值

2024-06-16 16:51:11 发布

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

我有以下JSON对象:

payload4 = '''{
    "Values": [
        {
            "Name": "projectionLength",
            "Attribute": "Test"
        },
        {
            "Name": "projectionHeight",
            "Attribute": "Test"
        }

    ]
}'''


payload5 = '''{
    "Values": [
        {
            "Name": "projectionLength",
            "Attribute": "Test5"
        },
        {
            "Name": "projectionHeight",
            "Attribute": "Test6"
        }

    ]
}'''

我需要将payload5的值添加到payload4的值中,但是如果我使用.update()方法payload5 Values,则只会覆盖payload4的值。最好的方法是什么


Tags: 对象方法nametestjsonupdateattributevalues
1条回答
网友
1楼 · 发布于 2024-06-16 16:51:11

您需要解压JSON对象,将它们添加到一起(请参见代码),然后将它们放回一个新的JSON对象
代码:

import json
d4=json.loads(payload4)
d5=json.loads(payload5)
d4["Values"].extend(d5["Values"])
newpayload=json.dumps(d4)

输出:

>>> print(newpayload)
{"Values": [{"Name": "projectionLength", "Attribute": "Test"}, {"Name": "projectionHeight", "Attribute": "Test"}, {"Name": "projectionLength", "Attribute": "Test5"}, {"Name": "projectionHeight", "Attribute": "Test6"}]}

外观更好的版本只是为了让您感觉到存储在newpayload中的内容(这是而不是真正的JSON文本):

>>> import pprint
>>> pprint.pprint(d4)
{'Values': [{'Attribute': 'Test', 'Name': 'projectionLength'},
            {'Attribute': 'Test', 'Name': 'projectionHeight'},
            {'Attribute': 'Test5', 'Name': 'projectionLength'},
            {'Attribute': 'Test6', 'Name': 'projectionHeight'}]}

相关问题 更多 >