Parse XML to Table in Python -
i'm trying parse xml table-like structure in python. imagine xml this:
<?xml version="1.0" encoding="utf-8"?> <base> <element1>element 1</element1> <element2>element 2</element2> <element3> <subelement3>subelement 3</subelement3> </element3> </base>
i'd have result this:
key | value base.element1 | "element 1" base.element2 | "element 2" base.element3.subelement3 | "subelement 3"
i've tried using xml.etree.celementtree, functions described here how convert xml string dictionary in python?
is there function can this? answers found written particular xml schemes , need edited each new xml scheme. reference, in r it's easy xml , xml2 packages , xmltolist function.
i've got needed outcome using following script.
xml file:
<?xml version="1.0" encoding="utf-8"?> <base> <element1>element 1</element1> <element2>element 2</element2> <element3> <subelement3>subelement 3</subelement3> </element3> </base>
python code:
import pandas pd lxml import etree data = "c:/path/test.xml" tree = etree.parse(data) lstkey = [] lstvalue = [] p in tree.iter() : lstkey.append(tree.getpath(p).replace("/",".")[1:]) lstvalue.append(p.text) df = pd.dataframe({'key' : lstkey, 'value' : lstvalue}) df.sort_values('key')
result:
Comments
Post a Comment