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