2016-09-23 5 views
0

Anaconda 4.1.1でPython 2.7.12を実行しています。私はかなり複雑なXML文書を解析するためにアンングルをインストールしました。throws XMLで関数の不明なキーエラーが発生しましたが、コマンドプロンプトで動作します

ここに私のコードです:

はIndexError:

import untangle 

obj = untangle.parse('ear.xml') 

for rd in obj.SaData.Session.Test.Data.RecordedData: 
    tls = rd.Measured.TestLines 
    tl = tls.Testline 
    for line in tl: 
     snl = line.SnLevel.cdata 
     pn = line.PresentNoise.cdata 
     print snl + " " + pn 

これは、次のエラーメッセージを返す不明なキー

をしかし、私はすぐに、コマンドプロンプトからTL = tls.Testlineを実行する場合、私は何のエラーもありません。

私は何かシンプルになるはずですが、私はノブであり、とても感謝しています。

EDIT:ファイルを添付できません。完全に拡張されたXMLは大きすぎて入力できません。私は、ファイルがどのように編成されているかを理解するため、部分的に拡張されたバージョンを提示しようとします。

<SaData Version="2" xsi:schemaLocation="uuid:ee2fbfd9-47a5-4dc8-a9eb-42d9995802ab SaData.xsd"> 
<ClientInfo></ClientInfo> 
<Session><Platform FirmwareVersion=""></Platform><Created>2016-09-21T11:08:58</Created> 
<Changed>2016-09-21T11:08:58</Changed> 
<Module Version="2.0.0.0">DPOAE</Module> 
<ProtocolName>DP 2 - 10 kHz (8/octave)</ProtocolName> 
<Settings></Settings> 
<Test><TestName>DP-Gram</TestName> 
<Settings></Settings> 
<Data> 
<RecordedData> 
<Settings></Settings> 
<Measured> 
<Earside>Left</Earside> 
<TestType>DPGram</TestType> 
<Readonly>false</Readonly> 
<PeakPressure>-5</PeakPressure> 
<TestStatus>9</TestStatus> 
<TestLines> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
<TestLine></TestLine> 
</TestLines> 
<TimeStamp>2016-09-19T12:28:11.7110965-05:00</TimeStamp><Duration>PT1M30S</Duration> 
</Measured> 
<Calculated></Calculated> 
<PrivateData></PrivateData> 
</RecordedData>< 
RecordedData></RecordedData> 
</Data> 
</Test> 
</Session></SaData> 
+0

これを再現する(したがって、診断する)ためには、ドキュメントのコピーが必要です。 –

+0

...完全なドキュメントを提供できない場合は、問題を再現するだけのテストを行ったサブセット(つまり、コマンドラインから作業し、スクリプトから失敗した場合)が実行されます。問題の(最小)作業コマンドラインセッションのコピーを編集してください。 –

+0

スクリプトとコマンドラインセッションで同じ 'ear.xml'ファイルが読み込まれますか? –

答えて

0

愚かなタイプミスです。私はTestLineを書く必要があったときにTestlineを書きました。みんなの時間を無駄にして申し訳ありません。

Dessie

関連する問題