Имеется OPC-сервер с набором данных:
<переменная1> <значение>
<переменная2> <значение>
<переменная3> <значение>
…
С помощью Python'а записываю эти данные в Excel
data = opc.read(vals) #список vals содержит имена нужных переменных i = 1 for new_data in data: sheet_data['A'+str(i)].value = new_data[0] sheet_data['B'+str(i)].value = new_data[1] i = i + 1 data_wb.save('E:\Python\Test.xlsx')
Когда цикл доходит до переменной <переменная7> и пытается записать значение этой переменной в ячейку появляется следующее сообщение об ошибке:
Traceback (most recent call last): File "E:\Python\Prj\Bot\bot.py", line 74, in <module> sheet_data['B'+str(i)].value = new_data[1] File "E:\Python\Phyton279\lib\site-packages\openpyxl\cell\cell.py", line 299, in value self._bind_value(value) File "E:\Python\Phyton279\lib\site-packages\openpyxl\cell\cell.py", line 196, in _bind_value value = self.check_string(value) File "E:\Python\Phyton279\lib\site-packages\openpyxl\cell\cell.py", line 160, in check_string raise IllegalCharacterError IllegalCharacterError
Просматривая данные на OPC-сервере, значение <переменной7> указано как пустое, т.е. “”, но переменных с таким значений несколько и с ними проблем нет.
Попробовал вывести значение этой переменной в питоне с указанием типа, получилось:
print type(new_data[1]) print ('!!!-',new_data[1]) <type 'unicode'> ('!!!-', u'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
Остальные “пустые” переменные выдают “”.
Таких переменных с непонятным содержимым в дальнейшем может быть больше, поэтому просто пропустить ее и не записывать не могу.
Подскажите, как записать это значение в Excel.
Python 2.7.9, библиотека Excel'я openpyxl