【发布时间】:2017-11-29 17:51:12
【问题描述】:
我有一个 .xml 文件目录,我对其中的某些特定部分感兴趣,例如:
<element1>
<elem1 id="e1" section="1" type="fruit" obj="156" pos="21" str="apple" />
<elem2 id="e2" section="2" type="fruit" obj="236" pos="11" str="orange" />
....
<elem_N id="N" section="N" type="Animal" obj="7476" pos="7" str="lion" />
</element1>
如何将所有标签作为element1 标签内的列提取到熊猫数据框中。像这样(*):
filename, elem id, section, type, obj, pos, str
filename1, elem1, 1, fruit, 156, 21, apple
filename2, elem2, 2, fruit, 236, 11, orange
...
filename_N, elem_N, N, Animal, 7476, 7, lion
到目前为止,我尝试过:
在:
import os, glob
from bs4 import BeautifulSoup
input_dir = glob.glob('../XML_FILES/*xml')
for e in input_dir:
file_name = os.path.basename(e)[:-6] +'.txt'
soup = BeautifulSoup(open(e),"lxml")
element1 = soup.findAll('element1')
print(file_name,element1)
上面的代码在列表中打印:filename 和完整的elemN。但是,我不明白如何将其转换为熊猫数据框。那么,我怎样才能得到(*)?
【问题讨论】:
标签: python python-3.x beautifulsoup lxml