如何使用Python从第一个JSON提取节点到第二个JSON?

2024-06-08 18:48:40 发布

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

第二天我就在挣扎,不能再往前走了。我的JSON是:

{
    "test": [
        {
            "features": [
                "none"
            ],
            "AAA": [
                {
                    "BBB": {
                        "CCC": 95,
                        "DDD": 60
                    },
                    "EEE": "123",
                    "FFF": "image/png",
                    "GGG": "222",
                    "HHH": "image"
                },
                {
                    "BBB": {
                        "CCC": 95,
                        "DDD": 60
                    },
                    "EEE": "126",
                    "FFF": "image/jpg",
                    "GGG": "645",
                    "HHH": "image"
                }
            ],
            "III": [],
            "JJJ": {
                "KKK": true
            },
            "LLL": "0",
            "MMM": false,
            "name": "AXA"
        },
        {
            "features": [
                "none"
            ],
            "AAA": [
                {
                    "BBB": {
                        "CCC": 95,
                        "DDD": 60
                    },
                    "EEE": "123",
                    "FFF": "image/png",
                    "GGG": "222",
                    "HHH": "image"
                },
                {
                    "BBB": {
                        "CCC": 95,
                        "DDD": 60
                    },
                    "EEE": "126",
                    "FFF": "image/jpg",
                    "GGG": "645",
                    "HHH": "image"
                }
            ],
            "III": [],
            "JJJ": {
                "SSS": {
                    "Tech": "ABC",
                    "Tech2": "DEF",
                    "Tech3": "GHI"
                },
                "TTT": {
                    "Tech": "ABC",
                    "Tech2": "DEF",
                    "Tech3": "GHI"
                },
                "UUU": {
                    "Tech": "ABC",
                    "Tech2": "DEF",
                    "Tech3": "GHI"
                },
                "WWW": {
                    "Tech": "ABC",
                    "Tech2": "DEF",
                    "Tech3": "GHI"
                    "Tech4": "JKL"
                },
                "KKK": true
            },
            "PERM": {
                "RRR": false
            },
            "X1": "adsada",
            "X2": false,
            "name": "AXA 2"
        }
    ]
}

我想将完整节点提取到几个JSON文件中。你知道吗

我想从JSON中提取第3行和第36行以及第37行和第94行之间的节点。你知道吗

问题是-它不会总是一样的,我的意思是我不能硬编码它把东西切成两半;)。你知道吗

我知道XMLs很简单,但我仍然不知道如何使用JSON。有人能帮我一点忙吗?你知道吗


Tags: imagejsonfffdeftechabcbbbccc
3条回答

如何处理json?嗯,和XML一样:解析它。你知道吗

=>;http://docs.python.org/2/library/json.html

您可以解码json并将其用作python元素(listdict

import json
data = json.loads(my_json)
print data['test'][0] # This would be your element between the lines 3 and 36
print data['test'][1] # This would be from 37 to 94

如果要再次将其转换为str

print json.dumps(data['test'][0])
print json.dumps(data['test'][1])

^{} module解析出JSON,这将为您提供一个Python数据结构。你知道吗

然后循环使用'test'键并将该列表中的每个字典转储到一个新的JSON文件:

import json

with open(inputjsonfile, 'r') as ifh:
    data = json.load(ifh)

    for i, entry in enumerate(data['test']):
        with open('outputfile-test-{}.json'.format(i), 'w') as ofh:
            json.dump(entry, ofh)

您可以根据需要进一步筛选条目,或者使用条目中的数据生成文件名;entry['name']是每个条目的名称值。你知道吗

相关问题 更多 >