Парсинг живого потока на фрейм данных - PullRequest
0 голосов
/ 11 мая 2018

У меня есть некоторые данные, которые поступают через порт TCP, и я пытаюсь преобразовать их в кадр данных, который постоянно обновляется.Код Python, который я до сих пор читал, приведен ниже.

import socket
import pandas as pd
import numpy as np

TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 1024  

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)

conn, addr = s.accept()
print ("Connection address:", addr)
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print ("received data:", data)
    conn.send(data)
conn.close()

output - при выполнении кода он собирает пакеты, которые выглядят следующим образом.\ R \ n начинает и заканчивает каждый пакет, первые 4 числа указывают столбец, в который он должен войти, а остальные числа - это значение.Например, в первом пакете 0105 указывает на дату отправки, а 180511 указывает на 5/11/18 для сегодняшней даты.Второй столбец - время (0106), а 14:54:02 - время.Третий столбец - это Vendor (1984), а Erdos Miller - это значение.

Connection address: ('127.0.0.1', 49567)
received data: b'&&\r\n0105180511\r\n0106145402\r\n1984Erdos Miller\r\n0120 
0\r\n0123 0\r\n01240\r\n01219.43\r\n011212.60\r\n01080.00\r\n01100.00\r\n
011438.89\r\n011538.89\r\n01160.00\r\n01170.00\r\n01130.00\r\n01180.00\r\n
01190.00\r\n01410.000000\r\n01420.000000\r\n01430.000000\r\n
01440.000000\r\n01450.000000\r\n!!\r\n'

Как бы мне было разделить каждый пакет, когда он попадает в кадр данных с соответствующими столбцами?Любая точка в правильном направлении приветствуется.

Обновлен вывод: eyllanesc рекомендовал функции bytearray и decode, и это становится намного ближе.Спасибо

Connection address: ('127.0.0.1', 50317)
received data: &&
0105180511
0106173020
1984Erdos Miller
0120 0
0123 0
0124 0
0121-7.97
01129.45
01080.00
01100.00
011438.91
011538.91
01160.00
01170.00
01130.00
01180.00
01190.00
01410.000000
01420.000000
01430.000000
01440.000000
01450.000000
!!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...