我没有运气试图解析这个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”的屏幕
我甚至没有开始尝试仅选择我关心的每个区域中的位。如果你可以锻炼我做错的事情,那么向正确的方向推进会很棒。
答案 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]