Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解压缩web套接字数据时出现问题_Python_Websocket_Utf 8_Zlib - Fatal编程技术网

Python 解压缩web套接字数据时出现问题

Python 解压缩web套接字数据时出现问题,python,websocket,utf-8,zlib,Python,Websocket,Utf 8,Zlib,我想从Bitmart的WebSocket(交换)中获取数据。我可以订阅WebSocket并取回数据,但它是压缩的,根据我应该使用zlib来解压缩数据,但当我尝试这样做时,它给出了一个错误:UnicodeDecodeError:“utf-8”编解码器无法解码位置1的字节0xcd:无效的继续字节 这是我的代码: import json from websocket import create_connection import zlib ws = create_connection("w

我想从Bitmart的WebSocket(交换)中获取数据。我可以订阅WebSocket并取回数据,但它是压缩的,根据我应该使用zlib来解压缩数据,但当我尝试这样做时,它给出了一个错误:
UnicodeDecodeError:“utf-8”编解码器无法解码位置1的字节0xcd:无效的继续字节

这是我的代码:

import json
from websocket import create_connection
import zlib

ws = create_connection("wss://ws-manager-compress.bitmart.news?protocol=1.1")
ws.send(json.dumps({
    "op": "subscribe",
    "args": ["spot/ticker:BTC_USDT"]
}))

while True:
    result = ws.recv()
    message = result
    compressed = zlib.compress(message)
    decompressed = zlib.decompress(compressed).decode('UTF-8')
    print(decompressed)

ws.close()
顺便说一句,ws.recv()返回如下数据:

b'5\xcd\xd1\x0e\x82 \x18\x05\xe0w\xf9\xaf\x1d\x01\x82\xbfzY\xbdAv\xd5\x1aCc\xe9\xc2pB\xb5\xe6|\xf7`\xcb\xdb\xef\x9c\x9d\xb3\xc0M\x07\r\xf5e\x81V{\xa3\xde\xce\xbeF\xa3\xb8\xe8\xa1\x06N\xab\x1c\x11+\x82\x122\xe8\x87{\xff\x0fdI)%\x94F\xb5\xda\x075\xcdCg\x92#2I\x10\x93\xbb\xcfV\x96L\xe4\xa4,"\xba\xc9<7\xc5\x9cK\xc2\xd2\x84W\x01jVp*\xa8(\xa5\x8c\xf0\x1d[gci\xdf\x1c\xd4\xf9tl`\xbdf\x10tk\xd3\x89\x9f\\\xd8\x85\xa1{\x98\x19\xd6\x1f'

“编码”b“5”C“5”C“5”C C C D D D C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D C C C C C C C C C C C C D D D D D D D D D D D C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D C C C C C C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D 075\xcdCg\x92#2I\x10\x93\xbb\xcfV\x96L\xe4\xa4,“\xba\xc9decompressed=zlib.decompresse(message,-zlib.MAX_WBITS).decode('UTF-8')

Omg,非常感谢!问题出在哪里?压缩的数据是原始的deflate,即没有zlib、gzip或任何其他包装。负窗口位参数(–15)请求原始的flate。