Я получаю пакет через последовательный порт, но когда я получаю пакет, он имеет байты класса и выглядит так:
b'>0011581158NNNNYNNN +6\r'
Как преобразовать это в обычную строку? Когда я пытаюсь взять информацию из этой строки, она появляется как десятичное представление, которое появляется.
Вы можете вызвать decode
в объекте bytes, чтобы преобразовать его в строку, но это работает только в том случае, если объект байтов фактически представляет текст:
>>> bs = b'>0011581158NNNNYNNN +6\r'
>>> bs.decode('utf-8')
'>0011581158NNNNYNNN +6\r'
Чтобы действительно разобрать вход, вам нужно знать формат и то, что он на самом деле означает. Для этого определите устройство, подключенное к последовательному порту (сканер “Робот”? Какой-то приемник?). И посмотрите протокол. В вашем случае это может быть текстовый протокол, но вы часто обнаружите, что байты стоят за цифры, в которых вы, вероятно, захотите взглянуть на struct
модуль.