如何在Python中从嵌套字典中打印多个指定键的值
解决嵌套字典中获取多个键值的问题
嘿,这个问题很常见,我来帮你理清楚!
首先,你之前的错误原因很明确:event["Records"][0]["Sns"]是一个字典对象,而你用了()去调用它——这是函数调用的语法,字典可不是函数,所以才会抛出TypeError: 'dict' object is not callable的错误。我们需要用字典的键访问语法(方括号[])来获取对应的值。
下面给你几种实用的正确实现方式:
方式1:逐个访问并打印
这是最直观的方式,先把嵌套的Sns字典取出来,再分别访问需要的键:
# 先把Sns字典存到变量里,避免重复写长路径 sns_info = event["Records"][0]["Sns"] # 分别打印每个键值 print(sns_info["Timestamp"]) print(sns_info["Subject"]) print(sns_info["Message"]) # 或者一次性打印在一行 print(sns_info["Timestamp"], sns_info["Subject"], sns_info["Message"])
方式2:批量收集值再处理
如果需要的键比较多,可以把键名放到列表里,用列表推导式批量获取值:
# 定义需要获取的键列表 target_keys = ["Timestamp", "Subject", "Message"] sns_info = event["Records"][0]["Sns"] # 批量提取值 target_values = [sns_info[key] for key in target_keys] # 打印结果列表 print(target_values) # 或者循环逐个打印 for value in target_values: print(value)
方式3:打印键值对(更清晰)
如果想同时看到键名和对应的值,可以用循环遍历键列表:
target_keys = ["Timestamp", "Subject", "Message"] sns_info = event["Records"][0]["Sns"] for key in target_keys: print(f"{key}: {sns_info[key]}")
这样执行后,你就能得到想要的多个键值内容啦!
内容的提问来源于stack exchange,提问作者vjwilson
相关产品推荐
相关产品推荐

