2017-04-03 64 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