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

如何修改Wurst的extract_exchanges函数提取Brightway数据库formula属性

解决Wurst提取Brightway交换formula属性的正确写法

问题出在你直接用proxy.data.get("formula")会给无公式的交换设置formula: None,导致Activity-Browser误将其识别为参数化交换,触发parametrizedexchange.formula非空约束错误。正确的做法是仅在交换存在有效公式时才添加该字段,同时提取参数化交换的必要关联信息:

修改extract_exchanges函数,在data["type"] = proxy.type下方添加以下代码:

# 提取有效公式及关联参数信息
formula = proxy.data.get("formula")
if formula and formula.strip():
    data["formula"] = formula
    # 可选:提取参数名称(如果交换关联了参数)
    data["parameter"] = proxy.data.get("parameter")
    # 可选:提取参数缩放系数(如果有)
    data["scale"] = proxy.data.get("scale", 1.0)

说明:

  • 仅当formula存在且非空字符串时,才将其加入交换数据,避免无公式的交换携带formula: None字段。
  • 额外提取parameter和scale是因为Brightway的参数化交换通常包含这些属性,确保导出回Activity-Browser时能完整还原参数化结构。
  • 这样修改后,Wurst提取的交换数据既保留了公式信息,又不会触发数据库约束错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:43:12