pandas Brightway 2/ActivityBrowser:有没有办法将XML格式的数据集导入到我的数据库?

fykwrbwg  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(73)

我正在使用Activity-Browser,我想将本地数据集导入到我的数据库中。我的文件是xml格式的。我不知道如何导入这种格式。有没有办法做到这一点,或者我可以用python代码来做吗?
我的数据来自:https://www.probas.umweltbundesamt.de/php/prozessdetails.php?id ={9 FB 8299 D-EEFF-4D 3C-B17 C-6085 B278 C 01 A}#nachoben.这里的xml文件是我想导入的文件。我已经尝试用xml.etree.ElementTree将数据写入pandas,但它不像我期望的那样工作。用python将数据库写入bw的方法是什么?我的数据库看起来如何?
我的代码看起来像这样:

#import packages 
import xml.etree.ElementTree as ET
import pandas as pd

#parse the xml file
tree = ET.parse('process.xml')
root = tree.getroot()

#initialize an empty list to store data
A = []

#define a recursive function to parse the xml tree
def parse_element(element, item):
    if len(list(element)) == 0:
        item[element.tag] = element.text
    else:
        for child in list(element):
           parse_element(child, item)

#iterate through the xml tree and parse the elements
for child in root:
    item={}
    parse_element(child, item)
    A.append(item)

df = pd.DataFrame(A)

字符串

ct2axkht

ct2axkht1#

我不知道有什么方法可以将XLM导入到AB中,在Python中读取它并使用BW将其写入数据库可能比在AB中使用它更容易。
如果您需要帮助,请让我知道您的数据是如何构建的。

xeufq47z

xeufq47z2#

很抱歉这么晚才回复,但无论如何你应该看看这个,我认为它会帮助你实现你想做的事情。
编辑代码以使用XML而不是xlsx,或者将数据转换为xlsx并直接使用。

svujldwt

svujldwt3#

要创建数据库,您可以创建一个遵循文档中指定的数据格式的python对象。您可以找到如何从该python对象创建数据库的示例。(例如here)。在旧的笔记本电脑中也有几个examples(笔记本以IO开头)。您确实可以使用xml.etree.ElementTree来解析xml文件,它似乎没有遵循bw 2 io中已经有导入器的任何模式。我建议您遵循提取-转换-加载(ETL)其他bw 2 io导入器的逻辑。理想情况下,您应该与社区共享导入器,以便其他人也可以使用这些文件。

相关问题