使用python基于specfic字符串/值对过滤json块

时间:2017-07-18 13:43:29

标签: python json filter

这是一个初学者。能否请您提供一个python代码,以了解如何从jason块中选择特定的值/键,如下所示。

"listeners": [
        {
            "ip_address": "::",
            "node": "rabbit@bx1",
            "port": 5672,
            "protocol": "amqp",
            "socket_opts": {
                "backlog": 128,
                "exit_on_close": false,
                "linger": [
                    true,
                    0
                ],
                "nodelay": true
            }
        },
        {
            "ip_address": "::",
            "node": "rabbit@bx1",
            "port": 25672,
            "protocol": "clustering",
            "socket_opts": []
        },
        {
            "ip_address": "::",
            "node": "rabbit@bx1",
            "port": 15672,
            "protocol": "http",
            "socket_opts": {
                "port": 15672
            }
        }
    ],

对于一个实例,我只需要过滤" ip address"和使用python的jason模块的相应值?得到类似下面的东西。

"listeners": [
        {
            "ip_address": "::",
                        }
        },
        {
            "ip_address": "::",
        },
                  }
        }
    ],

请指教一下。提前谢谢。

1 个答案:

答案 0 :(得分:0)

据我了解,你有一个词典列表:

>>> listeners = [{"a": 1, "b": 2}, {"a": 3, "b": 1}]

这意味着您可以使用列表中的map函数来过滤dicts:

>>> map(lambda d: d["a"], listeners) 
[1, 3]

现在这是一个简单的清单。您还可以(重新)在lambda函数中创建一个dict:

>>> map(lambda d: {"a": d["a"]}, listeners) 
[{'a': 1}, {'a': 3}]

这是你需要的吗?