仅在数据库字段值等于某个特定值时才匹配交易所

前端开发 2026-07-08

我想找一种方法,在Brightway LCI的交换中,当 database 字段对应特定名称(例如 "My DB")时,能够将其匹配到项目中的一个给定数据库。

我的用例如下:项目中有若干数据库,每个数据库都可能包含重叠的活动。因此,它们有许多共同的属性(或字段)(名称、参考流、位置、单位等)。然而,这些活动的交换项可能会改变。因此,除了我们通常在 match_database 中使用的字段之外,在执行匹配时,我还想根据 database 字段的取值来过滤交换项。举例来说,我希望能够把项目数据库 "Database 1" 的某些交换项与之匹配,但仅限那些 database 字段等于 "db-1" 的项。

match_database 方法似乎无法处理这种情况。当前,如果我执行 imported_db.match_database("Database 1", fields=["name", "unit", "location", "reference product"]),它可能会匹配到一些交换项,即使它们的 database 字段是 "db-2"。

请注意,在Activity Browser中导入Excel数据库时,会弹出一个对话框,要求将交换中提到的所有数据库名称映射到正确的Brightway项目数据库。因此,我猜它在我的场景中执行了类似的处理。

如何在brightway25中执行此类筛选或映射?

解决方案

what about?

imported_db.match_database("Database 1", fields=["name", "unit", 
"location", "reference product","database"])

它应该检查交换项的数据库属性,只将匹配的项关联起来。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章