代码之家  ›  专栏  ›  技术社区  ›  Abhishek Kumar

用Python从XML中提取数据

  •  1
  • Abhishek Kumar  · 技术社区  · 7 年前

    我有一个XML文件,其中包含来自多个源的数据,我正试图提取这些数据进行分析。但我无法提取数据。

    档案附呈 xml file .

    数据快照也附在此处:

    enter image description here

    我能得到的唯一输出是标题,我无法将数据加载到python中进行进一步分析。非常感谢您的帮助。

    1 回复  |  直到 7 年前
        1
  •  0
  •   petezurich rdelmar    7 年前

    一个简单的方法是使用 xmltodict

    with open("00001.xml", "r") as file:
        raw = file.read()
    
    import xmltodict
    data = xmltodict.parse(raw)
    print(data)
    

    这将打印出:

    OrderedDict([('logs',
                  OrderedDict([('@xmlns', 'http://www.witsml.org/schemas/1series'),
                               ('@xmlns:xsi',
                                'http://www.w3.org/2001/XMLSchema-instance'),
                               ('@version', '1.4.1.1'),
                               ('log',
                                OrderedDict([('@uidWell', 'W-508420'),
                                             ('@uidWellbore', 'B-508420'),
                                             ('@uid', 'L-508421-Time'),
                                             ('nameWell', '15/9-F-5'),
                                             ('nameWellbore',
                                              '15/9-F-5 - Main Wellbore'),
                                             ('name', 'Real Time SLB - Time Log'),
                                             ('serviceCompany', 'Schlumberger'),
                                             ('creationDate',
                                              '2007-12-18T13:28:58.000Z'),
    

    您将获得一个有序的dict,您可以像访问任何其他dict值一样访问该dict值。

    如果您想获得表格数据,我建议使用熊猫:

    import pandas as pd
    df = pd.DataFrame(data["logs"])
    df.head()