执行ElementTree脚本时出错

2024-05-19 08:58:13 发布

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

我有一个Li-Cor 820二氧化碳监测设备,我有一个关于解析该设备输出的xml流的问题。在命令提示符下逐行运行代码时,不会遇到任何问题,但在尝试运行脚本时,会出现“格式不正确(无效令牌)”错误

来自设备的xml如下所示:

<li820><data><celltemp>5.1411118e1</celltemp<cellpres>8.4122142e1</cellpres><co2>3.8320891e2</co2><co2abs>6.2126092e-2</co2abs><ivolt>1.7133789e1</ivolt><raw>3246069,3390159</raw></data></li820>

以下是我的Port\u Sniffer.py代码:

import serial
import xml.etree.cElementTree as ET

ser = serial.Serial(0)
readout = ser.readline()
datastream = ET.fromstring(readout)
tree = ET.ElementTree(datastream)
co2val = 0
for elem in tree.iter('co2'):
    co2val = round(decimal.Decimal(float(elem.text)), 2)
print co2val

正如我上面所说的,我可以逐行运行这个函数,它返回一个值,例如383.21,很好。但当我尝试运行一个>;Python Port_Sniffer.py命令,返回:

Traceback (most recent call last): File "Port_Sniffer.py", line 23, in <module>
datastream = ET.fromstring(readout)  File "<string>", line 124, in XML 
cElementTree.ParseError: not well-formed (invalid token): line 1, column 4

我想能够运行这个脚本在一个周期性的基础上,所以如果有人知道如何修复这个错误,这将是可怕的


Tags: 代码inpy脚本port错误linexml

热门问题