나는이 XML을 파이썬에서 dataframe하고 난 팬더의 데이터 프레임으로 해석 할 :구문 분석 XML은 같은 노드
<DISTRITO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NOME_DISTRITO>BRAGANCA</NOME_DISTRITO>
<CPE>PT0002000022161425NP</CPE>
<CPE>PT0002000022161458JH</CPE>
<CPE>PT0002000022161471ZP</CPE>
<CPE>PT0002000022161505SL</CPE>
</DISTRITO>
을이 내 파이썬 코드 :
이from lxml import objectify
from lxml import etree
import pandas as pd
path = '/TestFile.xml'
xml = objectify.parse(open(path))
root = xml.getroot()
data = []
for i in root:
el_data = {}
for child in root.getchildren():
el_data[child.tag] = child.pyval
# print el_data
data.append(el_data)
df = pd.DataFrame(data)
문제는 결과가 나오면 마지막 노드 값만을 반환합니다. ""값 :
CPE NOME_DISTRITO
0 PT0002000022161505SL BRAGANCA
1 PT0002000022161505SL BRAGANCA
2 PT0002000022161505SL BRAGANCA
3 PT0002000022161505SL BRAGANCA
4 PT0002000022161505SL BRAGANCA
XML 파일을 조금 파고 들었습니다. 노드에 대해 같은 이름을 얻을 때 발생합니다. 예를 들어 내 파일이 다음과 같은 경우 :
<DISTRITO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NOME_DISTRITO>BRAGANCA</NOME_DISTRITO>
<CPE1>PT0002000022161425NP</CPE1>
<CPE2>PT0002000022161458JH</CPE2>
<CPE3>PT0002000022161471ZP</CPE3>
<CPE4>PT0002000022161505SL</CPE4>
</DISTRITO>
아무런 문제가 없습니다. 나는 많은 것을 찾고 있었지만 나는 해결책을 찾을 수 없다. 그래서 당신이 저를 도울 수 있고 그 파일을 파싱 할 다른 방법을 찾으려고 노력한다면, 제가 제대로 작동하지 않을 수 있기 때문입니다.
감사합니다.
감사합니다. 저는 단지 etree에 대해 조금 이해하고 싶습니다. 객관화하고 일반적으로 Python으로 XML을 데이터 프레임으로 구문 분석하는 방법을 알고 싶습니다. 나는 거대한 XML 파일을 가지고 있으며 더 나은 독서를 위해이를 표 형식의 파일로 변환하려고합니다. 감사!! 너 나 많이 도와 줬어. :) –
@JulianaRivera, 아무 문제, 당신은 환영합니다. –