有没有办法用Python修改JSON?

2024-06-28 11:15:08 发布

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

我正在尝试用Python修改JSON,但是我不能正确地完成它。你知道吗

我已经尝试了Python默认附带的模块来处理JSON,但是我不能做下一步。你知道吗

要修改的JSON如下:

{
    "uuid":"789ce6ed-ec0f-418b-8fad-6ba64cb8bd70",
    "assetTemplate":[
        {
            "id":14,
            "name":"Template-conectividad"
        },
        {
            "id":54,
            "name":"Template-discos-agata"
        },
        {
            "id":17,
            "name":"Template-servidor-linux"
        }
    ],
    "info":null
}

应该是这样的:

{
    "uuid":"789ce6ed-ec0f-418b-8fad-6ba64cb8bd70",
    "assetTemplate":[
        {
            "id":54,
            "name":"Template-discos-agata"
        },
        {
            "id":17,
            "name":"Template-servidor-linux"
        },
        {
            "id":85,
            "name":"Template-conectividad-test"
        }
    ],
    "info":null
}

这是我试图删除的部分,我不想要,但我有部分插入新的数据:

#!/usr/bin/python

import json

# We load JSON to modify

x = '{"uuid":"789ce6ed-ec0f-418b-8fad-6ba64cb8bd70","assetTemplate":[{"id":14,"name":"Template-conectividad"},{"id":54,"name":"Template-discos-agata"},{"id":17,"name":"Template-servidor-linux"}],"info":null}'

y = json.loads(x)

obj = y["assetTemplate"]

# We remove the object that we dont want

for i in range(len(obj)):
    if obj[i]['id'] == 14:
        del obj[i]
        break

print(obj)

# We make output of what has been achieved

x = json.dumps(y)

print(x)

Tags: nameinfoidjsonobjuuidlinuxtemplate
1条回答
网友
1楼 · 发布于 2024-06-28 11:15:08

加载json时,它的内容将作为字典({},内容作为key:value)和列表([])加载。你知道吗

这意味着obj是一个普通的列表-你已经知道了,因为你迭代了它。你知道吗

因为它是一个普通的列表,所以你可以.append你想要什么作为字典,所以:

d={"id":85,"name":"Template-conectividad-test"}
obj.append(d)

相关问题 更多 >