在Python中解析JSON字符串/对象

时间:2011-03-14 05:02:15

标签: python json dictionary

我最近开始在python中使用JSON。现在我通过post请求将JSON字符串传递给Python(Django)。现在我想解析/迭代这些数据。但是我找不到一种优雅的方法来解析这些数据,不知怎的,我很确定存在。

data = request.POST['postformdata']
print data
{"c1r1":"{\"Choice\":\"i1\"}","c2r1":"{\"Bool\":\"i2\"}","c1r2":"{\"Chars\":\"i3\"}"}

jdata = json.loads(data)
print jdata
{u'c1r2': u'{"Chars":"i3"}', u'c1r1': u'{"Choice":"i1"}', u'c2r1': u'{"Bool":"i2"}'}

这是预料之中的。但是现在当我想要获得价值时,我开始遇到问题。我必须做类似

的事情
mydecoder = json.JSONDecoder()
for part in mydecoder.decode(data):                                             
    print part
# c1r2 c1r1 c2r1 ,//Was expecting values as well

我希望获得值+键,而不仅仅是键。现在,我必须使用键来获取值,如

print jdata[key]

如何以更简单的方式迭代这些数据,以便我可以迭代键值?

2 个答案:

答案 0 :(得分:5)

要迭代键和值,您可以编写

for key, value in jdata.iteritems():
    print key, value

您可以在此处阅读该文档:dict.iteritems

答案 1 :(得分:0)

只是为其他人提供帮助。在Python3中,dict.iteritems()已重命名为dict.iter()