You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于条件关联合并Python字典值:添加资产ETH价格字段

给Python资产字典添加对应ETH价格字段的实现方案

嘿,这事儿其实挺简单的,我来给你一步步说明怎么把两个字典合并成你想要的结构~

首先先明确我们的输入:

bal = { u'POWR': 5.341, u'GXS': 1.758285, u'NEO': 20.1805 }
prices_eth = { u'POWRETH': 0.00161001, u'GXSETH': 0.00974900, u'NEOETH': 0.09775400 }

我们的目标是把bal里每个资产的数值,替换成包含balance(原数值)和eth price(对应prices_eth里的价格)的字典结构。

方法一:直接修改原字典

如果你不需要保留原来的bal结构,可以直接遍历修改它:

for asset in bal:
    # 拼接prices_eth中对应的键名(资产名 + "ETH")
    price_key = asset + 'ETH'
    # 替换原资产值为新的字典结构
    bal[asset] = {
        "balance": bal[asset],
        "eth price": prices_eth.get(price_key, 0)  # 用get避免键不存在时报错,默认值可按需调整
    }

运行这段代码后,bal就会变成你想要的样子:

print(bal)
# 输出结果:
# {
#     u'POWR': {'balance': 5.341, 'eth price': 0.00161001},
#     u'GXS': {'balance': 1.758285, 'eth price': 0.009749},
#     u'NEO': {'balance': 20.1805, 'eth price': 0.097754}
# }

方法二:创建新字典(保留原数据)

如果不想改动原来的bal字典,可以新建一个字典来存储合并后的结果:

new_bal = {}
# 遍历原bal的键值对
for asset, balance_val in bal.items():
    price_key = asset + 'ETH'
    new_bal[asset] = {
        "balance": balance_val,
        "eth price": prices_eth.get(price_key, 0)
    }

这样原bal保持不变,合并后的结构都在new_bal里。

关键细节说明

  • 用prices_eth.get(price_key, 0)而不是直接prices_eth[price_key]的原因是:如果某个资产在prices_eth里没有对应的价格项,get方法会返回你指定的默认值(这里是0),而不会抛出KeyError异常,让代码更健壮。
  • 拼接键名的时候要注意格式:你的prices_eth里的键是资产名+ETH(比如POWR→POWRETH),所以直接用asset + 'ETH'就能准确匹配。

内容的提问来源于stack exchange,提问作者Vincent Levinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:37:22