Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python将节点从第一个JSON提取到第二个JSON?_Python_Json - Fatal编程技术网

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

如何使用Python将节点从第一个JSON提取到第二个JSON?,python,json,Python,Json,第二天我就在为这件事苦苦挣扎,不能再往前走了。我的JSON是: { "test": [ { "features": [ "none" ], "AAA": [ { "BBB": { "CCC": 95, "

第二天我就在为这件事苦苦挣扎,不能再往前走了。我的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做到这一点。谁能帮我一点忙吗

如何处理json?嗯,和XML一样:解析它


=>

使用解析出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)

您可以根据需要进一步筛选条目,或使用条目中的数据生成文件名<例如,code>entry['name']是每个条目的名称值。

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

导入json
data=json.load(my_json)
打印数据['test'][0]#这将是第3行和第36行之间的元素
打印数据['test'][1]#这将是从37到94
如果要再次将其转换为
str

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

我必须解决在文件中迭代打印所有内容的问题,但我需要限制为一个节点。i、 e.从示例json extract full node where name=“AXA 2”到第二个json文件。您是否阅读了标准库json模块的文档(上面我的答案中的链接)?是的,我读了,但老实说,手册中的json章节不是最好的。@jakkolwiek:哦,是的,嗯。。。它从实际例子开始,接着是api文档。是的,当然,这和Python外壳肯定不足以开始。对不起,这里有一个顶级字典,所以它将是
data['test'][0]