我从外部设备(串行)收到一些输入,并且我试图将值解析为小数。但是仅限我的 Rasberry pi in docker 我收到有时以下错误:
文件" /usr/bin/asmp/worker/parser.py",第58行,parse_line_value
返回Decimal(value_node)
decimal.InvalidOperation:[< class' decimal.ConversionSyntax'>]
以下函数(第一个return语句)中发生异常:
def parse_line_value(self, key, value_node):
"""Interprets the value of the line"""
value_node = value_node.replace("*kWh", "").replace("*kW", "")
print("Parsing value ("+key+"):'"+value_node+"'")
if key is not None and ("usage_" in key or "return_" in key):
return Decimal(value_node)
return value_node
导致崩溃的输入如下
key = return_total_normal
value = 000000.000*kWh
正如您所看到的,我在将字符串转换为小数之前在函数中放置了一个print语句,崩溃前的最后几行是:
Parsing value (usage_total_low):'000333.744'
Parsing value (return_total_low):'000000.000'
Parsing value (return_total_normal):'000000.000'
因此,您可以看到return_total_low的值与return_total_normal完全相同,但是可以正常工作。这也有时会发生,所以在其他情况下我没有错误,它连续10天运行。 (每10秒解析一次该值)
任何可以让我走上正轨的线索?