2017-04-03 2 views
0

XML에서 반환 된 API에서 데이터를 가져 와서 다른 함수로 전달하여 구문 분석하려고합니다.API에서 XML 구문 분석 - Python

for 루프를 실행하여 수백 개의 API 요청을 반복하고 XML을 저장하고 읽지 않으려합니다.

실행하려고하면 "error:TypeError: invalid file:"이 계속 나타납니다.

샘플 코드 및 데이터는 아래를 참조하십시오.

코드 :

import xml.etree.ElementTree as ET 

data = '' 

def pulldata(): 
    global data 
    data = xmlfromapi 

def parse(): 
    tree = ET.parse(data) 
    root = tree.getroot() 

pulldata() 
parse() 

XML 구조 : 내가 여기서 뭘

<Data reqId=1, data=<?xml version="1.0" encoding="UTF-8"?> 
<Report Major="1" Minor="0" Revision="1"> 
<Infos> 
<Info Type="RepNo">CA</Info> 
<InfoType="Name">John</Info> 
<Info Type="No">2019</Info> 
<Info Type=No">000</Info> 
</Infos> 

를 놓친 거지?

+0

도움 주셔서 감사합니다! 전역 변수를 삭제하고 모든 것을 pulldata()에 넣어도 잘못된 파일 오류가 발생합니다. – ashap

답변

0

파일에서 잘못된 XML 구문을 사용하고 있습니다. 권장되는 XML 구문을 사용하십시오. XML 스키마를 정정하면 괜찮을 것입니다. 여기 example을 참조하십시오. 편집 : 여기에 귀하의 XML :

<?xml version="1.0" encoding="UTF-8"?> 
    <Report Major="1" Minor="0" Revision="1"> 
    <Infos> 
     <Info Type="RepNo">CA</Info> 
     <Info Type="Name">John</Info> 
     <Info Type="No">2019</Info> 
     <Info Type="No">000</Info> 
    </Infos> 
</Report> 
+0

당신이 옳았습니다. XML 전체에 흩어져있는 xml 오류가있었습니다. 오류를 일으키는 코드를 제거하려면 str.replace()를 사용하십시오. 도움 주셔서 감사합니다. 매우 감사. – ashap