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

从 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()

请帮忙。太棒了!


慕沐林林
浏览 113回答 1
1回答

慕丝7291255

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_valuecoin = []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_valuecoin = []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}]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python