【问题标题】:Django Query Sets - Finding Percentage between two QuerySetsDjango 查询集 - 查找两个查询集之间的百分比
【发布时间】:2020-04-28 08:16:44
【问题描述】:

我有两个查询集 -

>>> region_carrier_groupby_total =
<QuerySet [{'region_carrier': 'tc2 - rc2', 'DID_Count': 2}, {'region_carrier': 'tc1 - rc1', 'DID_Count': 16}]>


>>> region_carrier_groupby_available =
<QuerySet [{'region_carrier': 'tc2 - rc2', 'DID_Count': 1}, {'region_carrier': 'tc1 - rc1', 'DID_Count': 14}]>

这里的目标是找到按 region_carrier 分组的 DID 计数的可用百分比。 比如——

region_carrier : tc1-rc1, Percent DID_Count = (14/16)*100 region_carrier : tc2 - rc2, Percent DID_Count = (1/2)*100

【问题讨论】:

    标签: python django django-views django-queryset


    【解决方案1】:

    所以我想你想用代码而不是 sql:

    total_counter = {}
    for item in region_carrier_groupby_total:
        total_counter[item['region_carrier']] = item['DID_Count']
    
    total_available = {}
    for item in region_carrier_groupby_available:
        total_available[item['region_carrier']] = item['DID_Count']
    
    result = {}
    for key, total in total_counter.items():
        result[key] = total_available.get(key, 0) / total
    

    【讨论】:

    • 我运行代码并得到错误 -'AttributeError: 'dict' object has no attribute 'DID_Count'' ` >>> >>> total_available = {} >>> 对于 region_carrier_groupby_available 中的项目: ... total_available[item.region_carrier] = item.DID_Count ... Traceback(最近一次调用最后):文件“”,第 2 行,在 中 AttributeError:'dict' 对象没有属性 'DID_Count' `
    • 修改回复,我以为你有对象))
    • 感谢@Anton Pomieshchenko。但是,我们如何将输出保存到可以作为上下文传递给视图的字典而不是打印呢?
    • 修改,只需创建一个结果dict并传递给查看
    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2019-07-01
    相关资源
    最近更新 更多