在 Python 中逐行解析原始 TCP 数据

Parsing raw TCP data line by line in Python

我正在通过 TCP 获取股票市场数据。我正在尝试将 Python 连接到经纪人,例如通过带有 read_eager() 的 Telnet (telnetlib) 或带有 socket.recv().

的套接字

输出结果如下:

DE000XX6XP73;0.0000;2.44;G;2020-04-24;18:22:04.200'
';\r\nDE000XX9JX82;0.0000;0.0;G;2020-04-24;18:22:06.2'
'18;\r\nDE000XX9XXW3;0.0000;127.17;G;2020-04-24;18:22'
':21.954;\r\nDE000XX68XV1;0.0000;3.22;G;2020-04-24;18'
':21:11.517;\r\nDE000XX3H0X0;0.0000;1.81;G;2020-04-24'

等等。

如您所见,这是一行: DE000XX6XP73;0.0000;2.44;G;2020-04-24;18:22:04.200;

如何解析每一行? TCP 数据流永远不会结束 - 它没有文件结尾,我需要在 "real-time" 中处理它。问题是我大部分时间都得到 "broken lines",例如DE000XX3H0X0;0.0000;1.81;G;2020-04-24

我设法在 Python 中找到了自己的解决方案,但没有按我的预期工作。 (同步)Python 处理 real-time 中的那些请求太慢了,它不知何故在一段时间后停止工作。我切换到 async JS,它现在可以正常工作了。