gpt4 book ai didi

python - 有没有一种方法可以在 Python 中对 JSON 文件中的单个属性的键值求和?

转载 作者:行者123 更新时间:2023-12-01 01:05:14 25 4
gpt4 key购买 nike

所以我有一个包含多个类别和数量属性的 JSON 文件。我需要分别对每个类别的数量求和,但我不确定我能做到这一点(或者我会如何做)。

这是我到目前为止的代码:

    for key, value in broken_database:

if value and "quantity" in value.keys():
sum += value["quantity"]

print(sum)

它给我返回了这个错误消息:

ValueError: too many values to unpack (expected 2)

即使它运行了,这段代码也不够,因为它只会对所有数量属性求和,而我需要对每个类别求和

我希望这至少能总结所有内容,这样我就可以弄清楚如何分离类别,但到目前为止我得到的只是错误。

编辑:这是 JSON 文件的一部分:

[
{
"id": 1316334,
"name": "Refrigerador bottom Freezer Electrolux de 02 Portas Frost Free com 598 Litros",
"quantity": 12,
"price": 3880.23,
"category": "Eletrodom\u00e9sticos"
},
{
"id": 1911864,
"name": "Mouse Gamer Predator cestus 510 Fox Preto",
"price": 699.0,
"category": "Acess\u00f3rios",
"quantity": 0
},

编辑:现在我有这个代码:

import json

with open("broken_database.json", "r+", encoding="utf-8") as file:
broken_database = json.load(file)

for key in broken_database:
estoque = sum(key["quantity"] for key in broken_database)
print(estoque)

with open("broken_database.json", "w", encoding="utf-8") as file:
json.dump(broken_database, file, indent=2)

print(broken_database)

它对所有“数量”属性进行求和,但不会通过“类别”属性将总和分开

最佳答案

您的 JSON 对象的数据结构是一个字典列表,因此您应该在不解压键值对的情况下对其进行迭代,并直接通过键获取 quantity 的字典值:

sum(d['quantity'] for d in broken_database)

编辑:由于您现在在评论中提到您希望按 category 属性对总和进行分组,因此您可以将输出改为字典,名为 sums 在以下示例中:

sums = {}
for d in broken_database:
sums[d['category']] = sums.get(d['category'], 0) + d['quantity']

关于python - 有没有一种方法可以在 Python 中对 JSON 文件中的单个属性的键值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com