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

関連する問題