从嵌套循环中提取数据

时间:2020-01-23 18:00:06

标签: python json

在以下情况下,我会从json响应中提取数据:

我正在遍历json并在active active下找到true的值,然后在同一父数组下在cls type下找到{{ 1}}为type,返回alpha1值(在这种情况下为260551)。 如果在遍历json后没有eces作为active的值,或者active的值为true但在true下的同一父数组中不是{{1} },然后返回未找到。

在这里,我正确地获取了cls的值,但是我又如何获取这些字段的值alpha1ecesaddress,{{1 }},然后为所有提取的数据构造一个键值映射,并保存在json文件中。

这是我尝试过的:

c_m

所需的json输出:

active

我被困在以这种结构创建json数据的过程中,任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

虽然我建议以某种适当的方式重构此代码,但这将以非常直接的方式创建一个映射:

import json

dump = []
for di in d:
    if di.get('active', False):
        for cl in di.get('cls', []):
            if cl.get('type') == 'alpha1':
                dump.append(
                {
                    "res1": [{
                        "eces": di['eces'],
                        "res2": [{
                            "c_m": di['c_m'],
                            "clsfrmt": [
                                {
                                    "address": di['cls'][0]['address'],
                                    "type": di['cls'][0]['type']
                                }
                            ],
                            "active": di['active']
                        }]
                    }]
                }
            )

s = json.dumps(dump) # this is your JSON string

Result