python字段列表清洗工具
程序员文章站
2022-04-05 23:03:23
python字典列表清洗器 场景 在写api的时候, 很多数据来源于第三方, 原始API接口返回的数据很多并不是我们想要的, 我们需要对原始数据进行筛选. 示例 原始数据如下 我们只需要如下字段 最终结果 实现 代码如下 ......
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)