Exiobase hybrid 3导入丢失的JSON数据包



使用以下包版本:

bw2data 4.0.dev18

bw2io 0.9.dev10

以下代码:

import bw2io as bi
ebhyb3 = bi.Exiobase3HybridImporter(dirpath_ebhyb3, db_name='EXIOBASE 3.3.17 hybrid')

输出以下错误:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
c:UsersdfontCONSTRUCIA S.LLCSA - GeneralCodetest.py in line 1
----> 210 ebhyb3 = bi.Exiobase3HybridImporter(dirpath_ebhyb3, db_name='EXIOBASE 3.3.17 hybrid')
File c:UsersdfontAnaconda3envsbw25Libsite-packagesbw2ioimportersexiobase3_hybrid.py:26, in Exiobase3HybridImporter.__init__(self, dirpath, db_name)
23 self.dirpath = Path(dirpath)
24 self.db_name = db_name
---> 26 activities = mrio_common_metadata.get_metadata_resource(
27     self.dirpath, "activities"
28 )
29 products = mrio_common_metadata.get_metadata_resource(self.dirpath, "products")
31 product_to_activities = {i["id"]: j["id"] for i, j in zip(products, activities)}
File c:UsersdfontAnaconda3envsbw25Libsite-packagesmrio_common_metadata__init__.py:40, in get_metadata_resource(dirpath, resource_name)
39 def get_metadata_resource(dirpath, resource_name):
---> 40     resource = _get_resource(dirpath, resource_name)
41     names = [f["name"] for f in resource["schema"]["fields"]]
42     data = load_compressed_csv(Path(dirpath) / resource["path"])
File c:UsersdfontAnaconda3envsbw25Libsite-packagesmrio_common_metadata__init__.py:22, in _get_resource(dirpath, resource_name)
21 def _get_resource(dirpath, resource_name):
---> 22     resources = _get_resources(dirpath)
23     assert len([r for r in resources if r["name"] == resource_name]) == 1
24     return next(r for r in resources if r["name"] == resource_name)
...
11     dirpath = Path(dirpath)
---> 12     assert (dirpath / "datapackage.json").is_file()
13     return dirpath
AssertionError: 

根据https://presamples.readthedocs.io/_/downloads/en/stable/pdf/:

datapackage.json: A JSON file following the datpackage standard with the metadata for these presamples. This is the only file that is required for a presample directory.

这个JSON应该包含什么信息,它是否在某处可用?

您需要首先使用这里的代码将exiobase (hybrid units) version 3.3.17转换为导入器所期望的格式。然后您可以运行导入器。

from bw2io.importers.exiobase3_hybrid import Exiobase3HybridImporter
ei = Exiobase3HybridImporter(path_to_exiobase)

最新更新