0

我有查询集,并且在每个对象上我都有像这样存储 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 中删除元素

4

2 回答 2

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)
于 2013-04-22T09:22:30.067 回答
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'}

同样,您可以添加、编辑、删除元素。请参阅以获取更多信息。

于 2013-04-22T09:31:53.420 回答