在 django 中解析 json 数组
Posted
技术标签:
【中文标题】在 django 中解析 json 数组【英文标题】:parsing json array in django 【发布时间】:2012-04-21 03:06:29 【问题描述】:您好,我正在尝试在 django 中解析从 android 发送的 JSON 数组 从android发送的json响应看起来像
["record":["intensity":"Low","body_subpart":"Scalp","symptom":"Agitation"]]
现在我在 django 中的功能如下:
record = simplejson.loads(request.POST['record'])
for o in record:
new_symptoms=UserSymptoms(health_record=new_healthrecord,body_subpart=o.body_subpart,symptoms=o.symptom,intensity=o.intensity)
new_symptoms.save()
但它不起作用 给我错误 为此,我还尝试在 python shell 中执行上述行
>>>rec=json.loads('["intensity":"Low","body_subpart":"Scalp","symptom":"Agitation","intensity":"High","body_subpart":"Scalp","symptom":"Bleeding"]')
>>> for o in rec:
... print rec.body_subpart
...
Traceback (most recent call last):
File "<console>", line 2, in <module>
AttributeError: 'list' object has no attribute 'body_subpart'
【问题讨论】:
为什么是rec.body_subpart
而不是o.body_subpart
?
抱歉输入错误它的o.body_subpart
【参考方案1】:
您必须使用o['body_subpart']
而不是o.body_subpart
。虽然这在 javascript 中是相同的,但在 Python 中是不同的。
【讨论】:
【参考方案2】:>>>rec=json.loads('["intensity":"Low","body_subpart":"Scalp","symptom":"Agitation","intensity":"High","body_subpart":"Scalp","symptom":"Bleeding"]')
>>> for o in rec:
... print rec['body_subpart']
默认情况下,JSON 对象会转换为 Python dict
,因此您会以这种方式管理访问其值的原因令人惊讶:
record = simplejson.loads(request.POST['record'])
for o in record:
body_subpart=o.body_subpart
【讨论】:
以上是关于在 django 中解析 json 数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 视图中使用 ajax POST 解析 json 数据