Python 3.x 如何用python从xml文件中提取信息
我有一个xml文件,需要从中提取一些信息。我需要的信息在标记tckrsymb中,它是股票id,其他信息在标记ntlfinvol、frstpric、MaxPric、MinPric中,它们是值 我的问题: 1-A必须将标签tckrsymb中的股票id信息与其他标签中的其他信息结合起来,如果可能的话,用“|”分隔一行,如下面的示例所示 示例:NEOE3F | 130667.98 | 25.79 | 25.95 | 25.52 2-某些标签没有ntlfinvol、frstpric、MaxPric、MinPric标签上的信息。在这种情况下,我必须像下面的例子一样输入0 示例:IDIJ20P282800 | 0 | 0 | 0 | 0 我以前做的代码。在该代码中,我可以提取Id stock信息并将其作为一个键放入dictionary中,但是其他值信息总是相同的,因为我使用的是bs4库的find方法,本例只返回第一次出现的值。我需要提取股票id和每个股票id的所有值信息(如果存在)Python 3.x 如何用python从xml文件中提取信息,python-3.x,xml,web-scraping,Python 3.x,Xml,Web Scraping,我有一个xml文件,需要从中提取一些信息。我需要的信息在标记tckrsymb中,它是股票id,其他信息在标记ntlfinvol、frstpric、MaxPric、MinPric中,它们是值 我的问题: 1-A必须将标签tckrsymb中的股票id信息与其他标签中的其他信息结合起来,如果可能的话,用“|”分隔一行,如下面的示例所示 示例:NEOE3F | 130667.98 | 25.79 | 25.95 | 25.52 2-某些标签没有ntlfinvol、frstpric、MaxPric、Min
from bs4 import BeautifulSoup as bs
import lxml
# Read the XML file
with open('BVBG.086.01_BV000328202001200328000001926374007.xml',"r") as file:
bs_content = bs(file, "lxml")
paper = {}
for t in bs_content.find_all("tckrsymb"):
valor = []
volume_financeiro = float(bs_content.find('ntlfinvol').get_text())
valor.append(volume_financeiro)
preco_abertura = float(bs_content.find("frstpric").get_text())
valor.append(preco_abertura)
paper[t.get_text()] = valor
print(paper)
我的程序的结果是:{'IDIJ20P282800':[130667.98,25.79],'NEOE3F':[130667.98,25.79],'DIRR157':[130667.98,25.79],'IDIJ20P282900':[130667.98,25.79],'BRFSA4':[130667.98,25.79],'BRFSC4':[130667.98,25.79]}
我还有一个软件,可以从B3(BVBG.017.02,BVBG.013.02…)读取这些文件和其他文件,但是我的语言程序是Kotlin,所以我不知道它是否有帮助。
在Kotlin中,如果我将标记配置为可选的,那么在对象中,如果它在文档中不存在,Kotlin将返回null。如果为空,我将该值设置为零。很可能python也有类似的功能。您的文档是XML,因此如果您感兴趣,使用lxml和xpath可能更容易。