将字符串转换为decimal的十进制结果.InvalidOperation

时间:2017-02-03 20:31:08

标签: python python-3.x decimal

我从外部设备(串行)收到一些输入,并且我试图将值解析为小数。但是仅限我的 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秒解析一次该值)

任何可以让我走上正轨的线索?

0 个答案:

没有答案