首页 > 解决方案 > 使用映射关系的字典键操作

问题描述

我想知道,假设我有以下数据结构:

fields = {'Name': 'Foo', 'Surname': 'Bar', 'Email': 'foo.bar@email.com', 'Privacy': 'true'}

我还有如下映射关系函数:

def get_account_fields_map():
    return {
        'Name': 'first_name',
        'Surname': 'last_name',
        'Email': 'email',
        'Privacy': 'remarketing_consent'
    }

fields_map = get_account_fields_map()

什么是最好和最高效的技术,使用 ? 重命名fields字典的键fields_map

我认为它可能需要以下组合:

_dict[new_key] = __dict.pop(old_key)

还有map()函数,以及某种翻译它们的键的应用函数?不确定...任何建议将不胜感激。

注意我也知道其中一个字段值是“真”……我正在使用 XML SOAP API。XD

编辑fields:注意另外,如果有一个键值对在...中没有映射,我将需要处理fields_map...对于这种情况,我很高兴从字典中删除该键值对...

标签: pythonpython-3.x

解决方案


您可以创建一个新字典:

fields = {fields_map[k]:v for k,v in fields.items()}

这里有活生生的例子

如果找不到密钥,您可以使用get原始密钥并将其作为新密钥返回:

fields = {fields_map.get(k, k):v for k,v in fields.items()}

推荐阅读