从JSON输出中选择字段

时间:2012-10-17 12:49:39

标签: python

使用Python,我如何将字段id提取到变量?基本上,我要改变这个:

{
    "accountWide": true,
    "criteria": [
        {
            "description": "some description",
            "id": 7553,
            "max": 1,
            "orderIndex": 0
        }
     ]
}

类似

print "Description is: " + description
print "ID is: " + id
print "Max value is : " + max

2 个答案:

答案 0 :(得分:33)

假设您将该字典存储在名为values的变量中。要将id输入变量,请执行以下操作:

idValue = values['criteria'][0]['id']

如果json在文件中,请执行以下操作加载它:

import json
jsonFile = open('your_filename.json', 'r')
values = json.load(jsonFile)
jsonFile.close()

如果该json来自URL,请执行以下操作加载它:

import urllib, json
f = urllib.urlopen("http://domain/path/jsonPage")
values = json.load(f)
f.close()

要打印所有条件,您可以:

for criteria in values['criteria']:
    for key, value in criteria.iteritems():
        print key, 'is:', value
    print ''

答案 1 :(得分:5)

假设您在输入中处理JSON字符串,可以使用json包解析它,请参阅documentation

在您发布的具体示例中,您需要

x = json.loads("""{
 "accountWide": true,
 "criteria": [
     {
         "description": "some description",
         "id": 7553,
         "max": 1,
         "orderIndex": 0
     }
  ]
 }""")
description = x['criteria'][0]['description']
id = x['criteria'][0]['id']
max = x['criteria'][0]['max']