当前位置: 移动技术网 > IT编程>脚本编程>Python > python字段列表清洗工具

python字段列表清洗工具

2020年05月12日  | 移动技术网IT编程  | 我要评论

刘孟哲,元宝山租房,160就医网

python字典列表清洗器

场景

在写api的时候, 很多数据来源于第三方, 原始api接口返回的数据很多并不是我们想要的, 我们需要对原始数据进行筛选.

示例

  • 原始数据如下

    原始数据 = [
                    {
                          'os-flv-disabled:disabled': false,
                          'os-flv-ext-data:ephemeral': 0,
                          'disk': 50,
                          'ephemeral': 0,
                          'extra_specs': munch({}),
                          'id': 'abb677c9-1bf2-415d-97bd-ef62574690ed',
                          'is_disabled': false,
                          'is_public': true,
                          'location': {'cloud': '43.254.45.115',
                                       'project': {'domain_id': none,
                                                   'domain_name': none,
                                                   'id': '3fb8e4b969eb4db8a67a6d576fc2070c',
                                                   'name': none},
                                       'region_name': none,
                                       'zone': none},
                          'name': 'wangjw',
                          'os-flavor-access:is_public': true,
                          'properties': {'os-flv-disabled:disabled': false,
                                         'os-flv-ext-data:ephemeral': 0,
                                         'os-flavor-access:is_public': true},
                          'ram': 4096,
                          'rxtx_factor': 1.0,
                          'swap': 0,
                          'vcpus': 2
                    },
                    ...
    
    	]
    
  • 我们只需要如下字段

    所需字段 = ["name", "id", "ram", "vcpus", "disk", "is_disabled", "is_public"]
    
  • 最终结果

    最终结果 =[
        {
              'disk': 50,
              'id': 'abb677c9-1bf2-415d-97bd-ef62574690ed',
              'is_disabled': false,
              'is_public': true,
              'name': 'wangjw',
              'ram': 4096,
              'vcpus': 2
        },
        ...
    ]
    

实现

代码如下

#!/usr/bin/env python
# ~*~ coding: utf-8 ~*~

def map_clean(source_key_list, dict):
    """清洗字典
    :param source_key:目标查找字段
    :param dict: 目标字典
    :return:清洗后的字典
    """
    tmp = {}
    for k, v in dict.items():
        if k in source_key_list:
            tmp[k] = v
        else:
            continue
    return tmp

if __name__ == "__main__":
    source_key_list = ["name", "id", "ram", "vcpus", "disk", "is_disabled", "is_public"]
    dict = 原始数据
    最终数据 =  map_clean(source_key_list, dict)

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网