为了账号安全,请及时绑定邮箱和手机立即绑定

Django Rest / Sum 相同硬币的响应值

Django Rest / Sum 相同硬币的响应值

慕沐林林 2022-10-05 18:22:53
从 api,我在一枚硬币上获得了多条记录。如何正确总结并将它们添加到 Wallet.objects() ?现在我有这样一个代码,它只是用硬币零覆盖旧值。示例我有回应{"coin":"BIP","value":"5"}{"coin":"ZERO","value":"4"}{"coin":"BIP","value":"15"}{"coin":"INSIDER","value":"24"}{"coin":"BIP","value":"41"}我想从这个响应中添加数据库:"coin":"BIP","value":"61""coin":"ZERO","value":"4""coin":"INSIDER","value":"24"它的总和是所有 BIP (5+15+41)。和其他硬币。如何?我的 Wallet.objects 现在不能合计这个金额obj, created = Wallet.objects.update_or_create(user=user, coin_id_id=coin.id, defaults={'amount_d': amount_d, 'amount_w': 0, 'cap_w': 0, 'cap_d': capitalize_d},)    obj.save()请帮忙。太棒了!
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

coins = [

    {'coin': "A", 'value': 2},

    {'coin': "B", 'value': 5},

    {'coin': "A", 'value': 1},

    {'coin': "A", 'value': 3},

]


new = {}

for c in coins:

    coin_name = c.get("coin")

    coin_value = c.get("value", 0)


    new[coin_name] = new.get(coin_name, 0) + coin_value


coin = []

for key in new:

    coin.append({'coin': key, 'value': new[key]})


print(coin)

结果:


[{'coin': 'A', 'value': 6}, {'coin': 'B', 'value': 5}]

编辑:(添加了bip_value)


coins = [

    {'coin': "A", 'value': 2, 'bip_value': 1},

    {'coin': "B", 'value': 5, 'bip_value': 2},

    {'coin': "A", 'value': 1, 'bip_value': 3},

    {'coin': "A", 'value': 3, 'bip_value': 4},

]


new = {

    'coin': {},

    'bip': {}

}


for c in coins:

    coin_name = c.get("coin")

    coin_value = c.get("value", 0)

    bip_value = c.get("bip_value", 0)


    new['coin'][coin_name] = new['coin'].get(coin_name, 0) + coin_value

    new['bip'][coin_name] = new['bip'].get(coin_name, 0) + bip_value


coin = []

for key in new['coin']:

    coin.append({'coin': key, 'value': new['coin'][key], 'bip_value': new['bip'][key]})


print(coin)

结果:


[{'coin': 'A', 'value': 6, 'bip_value': 8}, {'coin': 'B', 'value': 5, 'bip_value': 2}]



查看完整回答
反对 回复 2022-10-05
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号