python - 从 Python 上的嵌套字典中提取所有信息
问题描述
我正在学习 Python 上的嵌套字典。我想知道如何从嵌套字典中提取特定信息。我的数据如下:
data = {
"1": {'area': 'Administration', 'expenditure': '315'},
"2": {'area': 'Administration', 'expenditure': '120'},
"3": {'area': None, 'expenditure': '314'},
"4": {'area': 'Aids and appliances', 'expenditure': None},
"5": {'area': 'Aids and appliances', 'expenditure': '12'},
"6": {'area': 'Administration', 'expenditure': '110'},
"7": {'area': 'Administration', 'expenditure': '300'},
}
如何提取每个领域的所有支出信息?任何帮助表示赞赏。
解决方案
我想你想要一个特定expenditure
的specific areas
. 如果您想要所有区域,那么只需从我的代码中删除一个条件,否则您可以参考所有其他答案。我根据用户输入任何区域名称来执行此操作,他会得到expenditures
那个特定的area
.
def findExpense(data):
a = input("Enter area to find expenditure : ")
ex_dict = {}
# create expenditure list as values to ex_dict
ex_dict[a] = []
for _,vals in data.items():
if vals['area'] == a:
ex_dict[a].append(vals['expenditure'])
return ex_dict
print(findExpense({
"1": {'area': 'Administration', 'expenditure': '315'},
"2": {'area': 'Administration', 'expenditure': '120'},
"3": {'area': None, 'expenditure': '314'},
"4": {'area': 'Aids and appliances', 'expenditure': None},
"5": {'area': 'Aids and appliances', 'expenditure': '12'},
"6": {'area': 'Administration', 'expenditure': '110'},
"7": {'area': 'Administration', 'expenditure': '300'}
}))
如果您熟悉,list comprehension
则可以将for
循环替换为以下代码。
ex_dict[a] = [vals['expenditure'] for _, vals in data.items() if vals['area'] == a]
return ex_dict
推荐阅读
- multithreading - 分配许多小作业的设计模式
- python - 在 for 循环中通过数据框附加字符串
- c# - 不使用 Collection 构建队列
- reactjs - 延迟更新数组 React 的 setState
- mysql - 在mysql中以相反的顺序将表加入到自身中
- android - Android Room:查询不返回所有包含连接的行
- sql - 寻求改进的 SQL 查询
- proxy - Squid 代理无法访问受 Cloudflare 保护的网站
- c++ - 需要一个参考折叠规则的例子 T&&&& -> T&& on VS2017
- javascript - 将带有许多 && 的长 if 语句转换为带有 javascript 的 for 循环