アクティビティの交換を変更し、そのアクティビティをデータベースに保存し直したいと思います。
some_act['name'] = "some new name"
し、その後でアクティビティを保存します:
それは、その名のように、活動の他の側面を変更することが可能である some_act.save()
交流を同じ方法で変更することも可能である:
some_exc['scale"] = 0.5
をし、
some_exc.save()
Brightway2:アクティビティをdictとしてアクティビティを使用せずに変更/削除する
しかし、私は特定の活動から交流を追加/削除することが分かってきた唯一の方法は、を通過することです。それからとの交流を保存活動の:
some_act_dataset = some_act._data
some_act_dataset['exchanges'] = [{exchange1}, {exchange2}] # exc must be valid exchange dict
問題は、私は戻ってデータベースに(dictのような)新しいアクティビティを保存する方法がわからないということです。
some_act_dataset.save()
辞書にはsave
メソッドがないため、機能しません。 Database("my_database").write(some_act_dataset)
は、データベース内の他のすべてのデータを上書きします。
私がロードされたデータベースで作業することができます:
loaded_db = Database("my_database").load()
と私は結果の辞書に必要な変更を行い、その後、データベース全体を書きますが、データベースが大きいのとき、これはコストのかかる操作のように思えます。
質問:アクティビティの交換を変更し、データベース全体を上書きすることなくアクティビティをデータベースに保存する方法はありますか?