zoukankan      html  css  js  c++  java
  • python字段列表清洗工具

    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)
    
  • 相关阅读:
    软件测试-三角形问题
    软件测试经典问题——佣金问题
    Ubuntu下ssh免password登录安装
    elasticsearch的javaAPI之query
    非递归实现树的遍历
    递归输出字符串 经典中的经典
    对二维数据进行边界拓展
    【Bootstrap3.0建站笔记一】表单元素排版
    java模拟实现生产者---消费者问题
    Codeforces Round #271 (Div. 2)
  • 原文地址:https://www.cnblogs.com/failymao/p/12874422.html
Copyright © 2011-2022 走看看