【问题标题】:Filter nested json based on certain values using python使用python根据某些值过滤嵌套的json
【发布时间】:2021-11-03 12:24:57
【问题描述】:

假设我有一个像下面这样的 json 结构

{
    "timeStamp": 1630918356182,
    "type": "company", # possible values: food, company
    "pref": {
        "food": {
            "value": "veg"
        },
        "company": [
            "A",
            "B"
        ]
    }
}

我希望它被转换如下(扁平化 json 后过滤)。根据“type”的值对嵌套的“pref”对象进行过滤。

1630918356182 company A
1630918356182 company B

我怎样才能做到这一点?

【问题讨论】:

    标签: python json csv filter


    【解决方案1】:

    下面代码中的函数将根据需要过滤掉值

    def filter_data(data: dict):
        if data and 'type' in data:
            type =  data['type']
            
            time_stamp = data.get("timeStamp", "")
    
            if  'pref' in data:
                for value in data['pref'].get(type, []):
                    yield time_stamp, type, value
    
    
    
    if __name__ == '__main__':
    
        data = {
            "timeStamp": 1630918356182,
            "type": "company", # possible values: food, company
            "pref": {
                "food": {
                    "value": "veg"
                },
                "company": [
                    "A",
                    "B"
                ]
            }
        }
    
        result = filter_data(data)
        for time_stamp, type, value in result:
            print(time_stamp, type, value)
    

    【讨论】:

    • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
    猜你喜欢
    • 2018-05-25
    • 1970-01-01
    • 2014-08-19
    • 2018-12-20
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 2012-05-14
    相关资源
    最近更新 更多