试图用python解析JSON数据

时间:2014-04-15 23:41:27

标签: python json

我没有运气试图解析这个json数据,我只关心它的少量。

json数据

{
    "timestamp" : 1397555135361,
    "sets" : {
        "worldguard.markerset" : {
            "areas" : {
                "world_region_name" : {
                    "markup" : false,
                    "desc" : "What I really want.",
                    "weight" : 3,
                    "color" : "#FF0000",
                    "fillopacity" : 0.35,
                    "opacity" : 0.8,
                    "label" : "Region_name",
                    "ytop" : 65.0,
                    "fillcolor" : "#FF0000",
                    "z" : [846.0, 847.0, 847.0, 846.0],
                    "ybottom" : 65.0,
                    "x" : [773.0, 773.0, 774.0, 774.0]
                }
            }
        }
    }
}

我希望我正确地复制它,它是一个非常大的文件,我只关心它所拥有的区域信息。

这个json文件的其他部分,我不关心,所以我没有包含它们。但是我所关心的“区域”下有很多项目。我只是无法解决如何解析所有

import json
from pprint import pprint
json_data=open('marker_world.json')

data = json.load(json_data)


for item in data["sets"]["worldguard.markerset"]["areas"]:
    print item

我关心的每个地区的物品是; desc,label,z,& x。

似乎没有打印出该地区下的所有内容,就像我希望我得到的是“u'w”的屏幕

我甚至没有开始尝试仅选择我关心的每个区域中的位。如果你可以锻炼我做错的事情,那么向正确的方向推进会很棒。

1 个答案:

答案 0 :(得分:1)

这是你可以开始的。

从某个区域定义所需的键列表,然后迭代areas,为每个区域获取您已定义的键的值:

keys = ['desc', 'label', 'x', 'z']
for area_key, area_items in data["sets"]["worldguard.markerset"]["areas"].iteritems():
    print area_key
    for key in keys:
        print '%s: %s' % (key, area_items[key])

打印:

world_region_name
desc: What I really want.
label: Region_name
x: [773.0, 773.0, 774.0, 774.0]
z: [846.0, 847.0, 847.0, 846.0]