操纵python json词典

时间:2014-06-24 08:08:10

标签: python

我试图在python中操纵一些JSON,但我真的陷入困境。我可以在python中使用基本词典但不是这个。我试图提取单个变量值(AKA是键值对的值部分)。

data = json.dumps({ 
"example":[
 {
     "id": "001",
     "somefield": "yes",
     "text": "This is text",
     "options":[
        {
           "firstop": "yesitis",
           "secondop":1
        }
     ],
     "length":5
  },
  ]

“示例”中有许多其他条目,但这是第一个。我已经尝试过相当于(并且这可以通过打印出所有内容来实现):

print json.loads(data)['example']

但是执行以下操作不起作用:

    print json.loads(data)['example']['id']

我不知道如何逐个访问变量。我一直在尝试使用“for key,value in json.loads(data)['example']:”等等的变体,但它们都告诉我解压缩的值太多了。

3 个答案:

答案 0 :(得分:7)

如果您查看格式,您会看到它实际上是一个包含字典的列表。

尝试:

print json.loads(data)['example'][0]['id']

答案 1 :(得分:0)

您也可以尝试jsontree

>>> mytree = jsontree()
>>> mytree.something.there = 4
>>> mytree['something']['there'] == 5
>>> False
>>> mytree['something']['there'] == 4
>>> True

答案 2 :(得分:0)

由于“example”是json的列表: 如果您想访问ID或其他密钥

print json.loads(data)['example'][0]['id']
print json.loads(data)['example'][0]['text']  ...

如果您想访问选项中的键:

print json.loads(data)['example'][0]['options'][0]['firstop']