如何汇总默认dict数据

如何解决如何汇总默认dict数据

我有一个字典列表,如下所示:

result = {
    "resultset": [
        {"name": "DOG","threshold": Decimal("1.45600000"),"current_value": 124},{"name": "DOG","current_value": 14},"current_value": 1},{"name": "CAT","current_value": 24},"current_value": 4},]
}

现在我想实际做2件事,基本上是在我得到的地方做一个凝结:

  1. 当前值列表[]
  2. 阈值的平均值

所以最后我想看看:

{
'DOG': {'current_values': [124,14,1],'threshold': the average of threshold},'CAT': {'current_values': [24,4],'threshold': the average of threshold}
}

我可以使用其中的一半来获取current_values列表,但不能使用认的dict来获取整个列表,

all_animals  = defaultdict(list)
     for i in result['resultset']:                
           all_animals[i['name']].append(float(i['current_value']))

有人可以帮我吗

解决方法

带有defaultdictstatistics的蛋糕:

from decimal import Decimal
from collections import defaultdict
import statistics

result = {
    "resultset": [
        {
            "name": "DOG","threshold": Decimal("1.45600000"),"current_value": 124,},{
            "name": "DOG","current_value": 14,"current_value": 1,{
            "name": "CAT","current_value": 24,"current_value": 4,]
}

current_values_by_name = defaultdict(list)
thresholds_by_name = defaultdict(list)
for x in result["resultset"]:
    current_values_by_name[x["name"]].append(x["current_value"])
    thresholds_by_name[x["name"]].append(x["threshold"])

aggregate_result = {
    name: {
        "current_values": current_values_by_name[name],"threshold": statistics.mean(thresholds_by_name[name]),}
    for name in current_values_by_name
}

print(aggregate_result)

输出

{
    "DOG": {
        "current_values": [124,14,1],"threshold": Decimal("1.456"),"CAT": {
        "current_values": [24,4],}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?