编写一个函数,从字典中提取信息,当某些键或子键缺失时。
创始人
2024-12-06 13:00:55
0

以下是一个示例函数,它从字典中提取信息,并在某些键或子键缺失时返回指定的默认值:

def extract_information(data, keys, default=None):
    """
    从字典中提取信息,并在某些键或子键缺失时返回默认值
    :param data: 要提取信息的字典
    :param keys: 需要提取的键或子键列表
    :param default: 缺失键或子键时返回的默认值,默认为None
    :return: 从字典中提取的信息或默认值
    """
    current = data
    for key in keys:
        if isinstance(current, dict) and key in current:
            current = current[key]
        else:
            return default
    return current

使用示例:

data = {
    "person": {
        "name": "John",
        "age": 30,
        "address": {
            "street": "123 Main St",
            "city": "New York"
        }
    }
}

# 提取存在的键或子键
name = extract_information(data, ["person", "name"])
age = extract_information(data, ["person", "age"])
street = extract_information(data, ["person", "address", "street"])

print(name)  # 输出: John
print(age)  # 输出: 30
print(street)  # 输出: 123 Main St

# 提取缺失的键或子键
city = extract_information(data, ["person", "address", "city"])
zipcode = extract_information(data, ["person", "address", "zipcode"], default="N/A")

print(city)  # 输出: New York
print(zipcode)  # 输出: N/A

在上面的示例中,extract_information函数接受一个字典、一个键或子键列表和一个默认值。它逐个检查键或子键是否存在,并返回对应的值。如果在提取过程中任何一个键或子键缺失,则返回默认值。

相关内容

热门资讯

Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...
Aksnginxdomainb... 在AKS集群中,可以使用Nginx代理服务器实现根据域名进行路由。以下是具体步骤:部署Nginx i...
AddSingleton在.N... 在C#中创建Singleton对象通常是通过私有构造函数和静态属性来实现,例如:public cla...
Alertmanager中的基... Alertmanager中可以使用repeat_interval选项指定在一个告警重复发送前必须等待...