尝试用python解析JSON数据

2024-10-04 03:17:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我没有运气尝试解析这个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”屏幕

我甚至还没有开始尝试只从我所关心的每个区域中选择一点。如果你能找出我做错的地方,朝着正确的方向推动就太好了。你知道吗


Tags: 文件数据namejson区域worlddatasets
1条回答
网友
1楼 · 发布于 2024-10-04 03:17:35

你可以从这里开始。你知道吗

从一个区域定义所需键的列表,然后迭代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]

相关问题 更多 >