我有一个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_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,很好。但是当我尝试运行&gt; 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
我希望能够定期运行这个脚本,所以如果有人知道如何修复这个错误会很棒!