解析带有未知键的XML在函数中抛出错误,但在命令promp下工作

2024-04-26 10:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在anaconda4.1.1中运行python2.7.12。我安装了untangle来解析一个非常复杂的XML文档。你知道吗

这是我的密码:

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=测试线从命令提示符,我没有得到任何错误。你知道吗

一定很简单,但我是个笨蛋,很感激你的帮助。你知道吗

编辑:我无法附加文件,而且完全扩展的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>

Tags: testobjdatasettingssession错误linexml