如何在Python中获取JSON叶子节点并计算2022年总销售额
Python提取2022年客户销售值总和解决方案
完整代码实现
# 假设JSON数据已加载为字典(从文件读取的话看下方步骤) customer_data = { "customer_data": [ {"name": "John Smith", "age": 35, "email": "johnsmith@gmail.com", "phone": "0413-535-124", "sales_value": [{"year": "2022", "sales_value": 2000}, {"year": "2023", "sales_value": 3000}]}, {"name": "Jane Doe", "age": 28, "email": "janedoe@yahoo.com", "phone": "0401-655-568", "sales_value": [{"year": "2022", "sales_value": 2000}, {"year": "2023", "sales_value": 3000}]}, {"name": "Bob Johnson", "age": 42, "email": "bjohnson@hotmail.com", "phone": "0433-515-912", "sales_value": [{"year": "2022", "sales_value": 2000}, {"year": "2023", "sales_value": 3000}]}, {"name": "Bob2 Johnson", "age": 42, "email": "bjohnson@hotmail.com", "phone": "0433-515-912", "sales_value": [{"year": "2022", "sales_value": 2000}, {"year": "2023", "sales_value": 3000}]}, {"name": "Bob3 Johnson", "age": 42, "email": "bjohnson@hotmail.com", "phone": "0433-515-912", "sales_value": [{"year": "2022", "sales_value": 2000}, {"year": "2023", "sales_value": 3000}]} ] } total_2022_sales = 0 # 遍历所有客户 for customer in customer_data["customer_data"]: # 遍历当前客户的每一条销售记录 for sale in customer["sales_value"]: if sale["year"] == "2022": total_2022_sales += sale["sales_value"] print(f"2022年销售总和: {total_2022_sales}")
简化写法(生成器表达式)
如果偏好更紧凑的代码,可直接用生成器表达式求和:
total_2022_sales = sum( sale["sales_value"] for customer in customer_data["customer_data"] for sale in customer["sales_value"] if sale["year"] == "2022" ) print(f"2022年销售总和: {total_2022_sales}")
关键步骤解析
加载JSON数据
若数据存储在本地文件中,需用json模块读取:import json with open('your_data_file.json', 'r') as f: customer_data = json.load(f)层级访问逻辑
- 最外层字典的
customer_data键对应客户列表 - 每个客户字典的
sales_value键对应该客户的年度销售记录列表 - 每条销售记录是包含
year和sales_value的字典,直接通过键名即可访问叶子节点值
- 最外层字典的
筛选与累加
通过嵌套遍历客户和销售记录,用year == "2022"筛选目标年份的记录,将对应sales_value累加到总和变量中。
内容的提问来源于stack exchange,提问作者Kaza
相关产品推荐
相关产品推荐

