英文:
How can I access the leaf node of the JSON file to retrieve the sales_value of the year 2022 for all customers, and then sum them up in Python?
问题
{
"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
}
]
}
]
}
要在Python中计算2022年的销售值,你可以使用以下代码:
# 上面的JSON数据
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
}
]
}
]
}
# 计算2022年的总销售值
total_sales_2022 = sum(customer["sales_value"][0]["sales_value"] for customer in data["customer_data"])
print(total_sales_2022)
这段代码将遍历所有客户的数据,并将2022年的销售值相加,然后打印出总销售值。
英文:
{
"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
}
]
}
]
}
Using above json file needs to calculate sales_value of the year 2022 in python.
Pls can you guide me how to get leaf node and calculate total sales value of 2022
I have tried to get leaf node
答案1
得分: 1
以下是翻译好的部分:
如果你确信 JSON 中会包含每个客户的 'sales_value' 字段,那么你可以尝试以下代码,它应该是不言自明的:
import json
with open('file.json', 'r') as f:
data = json.load(f)
total_sales_value = 0
for customer in data['customer_data']:
for sales in customer['sales_value']:
if sales['year'] == '2022':
total_sales_value += sales['sales_value']
至于不太可读的一行代码:
sum([sales['sales_value'] for customer in data['customer_data'] for sales in customer['sales_value'] if sales['year'] == '2022'])
输出:
10000
英文:
If you're certain that the json would contain the 'sales_value' field for each customer, then you can try the follwing, which should be self explanatory:
import json
with open('file.json', 'r') as f:
data = json.load(f)
total_sales_value = 0
for customer in data['customer_data']:
for sales in customer['sales_value']:
if sales['year']=='2022':
total_sales_value += sales['sales_value']
As for less readable one liner:
sum([sales['sales_value'] for customer in data['customer_data'] for sales in customer['sales_value'] if sales['year']=='2022'])
Output:
10000
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论