Python ValueError: недопустимый литерал для float ()
У меня есть скрипт, который читает данные о температуре:
def get_temp(socket, channels):
data = {}
for ch in channels:
socket.sendall('KRDG? %s\n' % ch)
time.sleep(0.2)
temp = socket.recv(32).rstrip('\r\n')
data[ch] = float(temp)
Иногда скрипт завершается с ошибкой в строке, которая преобразует значения в плавающее:
Файл "./projector.py", строка 129, в get_temp
data [ch] = float (temp)
ValueError: недопустимый литерал для float (): + 135.057E + 0
+ 078.260E + 0
+00029
но это НЕ недействительный литерал. Если я введу это в любую оболочку Python,
float(+135.057E+0)
тогда он правильно возвращает 135.057.
Так в чем проблема?