VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • python字段列表清洗工具

作者:@failymao
本文为作者原创,转载请注明出处:https://www.cnblogs.com/failymao/p/12874422.html


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)

相关教程