代码之家  ›  专栏  ›  技术社区  ›  AK88

从XML文档获取数据

  •  0
  • AK88  · 技术社区  · 6 年前

    我正在努力从XML文档中获取数据。我正在寻找这个来源: http://cbu.uz/uzc/arkhiv-kursov-valyut/xml/USD/2015-03-26/

    <CcyNm_EN>U.S. Dollar</CcyNm_EN>
    <Nominal>1</Nominal>
    <Rate>2484.15</Rate>
    <date>24.03.2015</date>
    

    到目前为止,我可以在这里取得进展,但我不知道接下来要做什么:

    import requests
    import xml.etree.ElementTree as et
    import pandas as pd
    
    url = 'http://cbu.uz/uzc/arkhiv-kursov-valyut/xml/USD/2015-03-26/'
    xml_data = requests.get(url).content
    root = et.fromstring(xml_data)
    root.attrib
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sach    6 年前

    您可以使用下面的代码来获取值。基本上,您需要在根节点上迭代以找到所有子节点并提取数据。

    编辑:更新答案,使其在Dataframe中有输出,并且在输出中只有四个元素。

    import requests
    import xml.etree.ElementTree as et
    import pandas as pd
    
    url = 'http://cbu.uz/uzc/arkhiv-kursov-valyut/xml/USD/2015-03-26/'
    xml_data = requests.get(url).content
    root = et.fromstring(xml_data)
    required_tag = [ 'CcyNm_EN','Nominal','Rate','date']
    
    root.attrib
    
    data_dict = {}
    for elem in root:
        for el in elem:  
            if el.tag in required_tag:
                data_dict.setdefault(el.tag,[]).append(el.text)
    
    df = pd.DataFrame.from_dict(data_dict)
    

       CcyNm_EN   Nominal Rate     date
    0 U.S. Dollar 1       2484.15  24.03.2015