Я читаю в данных из текстового файла, который выглядит следующим образом:Python отказывается преобразовать строку плавать
Time Date Inlet Gas skin #1 SKIN #2 OUT GAS
°C °C °C °C
15:28:55 4/11/2015 2.826471e+001 2.217617e+001 2.408844e+001 2.771613e+001
Когда я прочитал его, я беру время и дату и объединить их для объект strptime и сформировать новый dict. Я также читал метки из первой строки и использовал их как ключи для нового dict. Я получаю ошибку позже в скрипте, который говорит, что для округления значений требуется поплавок. Когда я отмечаю «float (a) для« строки », проводник переменных говорит мне, что« тип »a является строкой_, а его значение равно« 2.826471e + 001 »(цитирует мое). Я попробовал опцию ast eval, и это не сработало.
dict_labels = [label for label in labels if not label == 'Time' and not label == 'Date' and not label == '']
current_array =np.array(current_array)
temp_dict = {}
temp_dict['Dates_Times'] = [datetime.strptime(i + ' ' + j, dateformat) for i,j in zip(current_array[:][:,labels.index('Date')], current_array[:][:,labels.index('Time')])]
for label in dict_labels:
temp_dict[label] = [float(a) for a in current_array[:][:,labels.index(label)]]
'>>> поплавок ("2.826471e + 001") 28.26471' Этот вход может быть разобраны просто найти , Я думаю, что что-то еще неверно в ваших структурах данных и алгоритмах. – dsh
Обратите внимание, что 'float()' возвращает объект, а представление списка создает новый объект списка. Постижение списка не изменяет объект, на который ссылается переменная 'current_array'. Возможно, после создания float в понимании списка вы переходите к использованию строк в исходном массиве вместо нового списка? – dsh