我如何在python中编辑json并保存

时间:2013-04-22 09:02:06

标签: python django

我有查询集,并且在每个对象上我都有像这样存储json的字段

qs = Student.objects.all()

现在每个对象都有一个名为json_data的字段,其中包含某个对象的嵌套json转储。那个json对象如下:

        "id": 10,
        "subject_set": [
            {
                "number": "9a16b",
                "date": "2013-04-16",
                "id": 30,
                "book_set": [ … ],
                "statement_no": "dc393015"
            },
            { … },
            { … }
        ]
    },
    "status": "active"

}

现在我想对那个json上的每个主题进行一些过滤,然后删除那些与标准不匹配的主题,对所有学生,然后将json保存在原始主题上。但是我无法找到如何从json中删除元素

2 个答案:

答案 0 :(得分:1)

那个json对象是一本字典。

d= {1:1,2:2,3:3}
print d
#{1: 1, 2: 2, 3: 3}
del(d[1])
#{2: 2, 3: 3}

您可以使用普通字典功能对其进行修改。

subjects= parent_object['subject_set']
for i in list(subjects):
    if i['number'] in ('0000','0001'): #some subjects you want to delete
        subjects.remove(i)

答案 1 :(得分:0)

如果您有关于从json中删除元素的问题。

In [1]: import simplejson
In [30]: h = '{"name":"earth", "status":"died"}'
In [32]: json = simplejson.loads(h)
In [34]: json
Out[34]: {'name': 'earth', 'status': 'died'}
In [35]: json.pop('status')
Out[35]: 'died'
In [36]: json
Out[36]: {'name': 'earth'}

同样可以添加,编辑,删除元素。有关详细信息,请参阅this