如何解码 Proto2 响应 python

问题描述 投票:0回答:1

使用请求调用api,响应内容为proto2格式。

r = requests.post('https://gs-loc.apple.com/clls/wloc',headers=HEADERS,data=DATA,verify=False)
print(r.content)

回应:

b"\x125\n\x1164:fb:92:9c:91:8d\x12\x1a\x08\x88\x90\xbf\xf0\x04\x10\xe8\xf7\x84\xf2\x1c\x18\x1d \x00(\x94\x070\nX>`\xf6\x01\xa8\x01\x01\xb0\x01\x00\x124\n\x103c:1e:4:e3:b6:9b\x12\x1a\x08\x82\x81\xbe\xf0\x04\x10\xc1\xbc\x86\xf2\x1c\x184 \x00(\x94\x070\nX?`\xcc\x03\xa8\x01\r\xb0\x01\x00\x125\n\x114c:ae:1c:20:de:4e\x12\x1a\x08\xda\x8a\xbe\xf0\x04\x10\x9c\xd1\x85\xf2\x1c\x18' \x03(\x94\x070\nX?`\xd0\x03\xa8\x01\x04\xb0\x01\x00\x125\n\x1164:fb:92:9c:b6:f5\x12\x1a\x08\xff\xcf\xbe\xf0\x04\x10\xf0\x9b\x87\xf2\x1c\x185 \x00(\x94\x070\nX?`\xf7\x01\xa8\x01\x01\xb0\x01\x00\x124\n\x100:31:92:57:1b:6d\x12\x1a\x08\x98\xd8\xbe\xf0\x04\x10\xc3\x8c\x84\xf2\x1c\x18\x14 \x03(\x93\x070\nX>`\xec\x01\xa8\x01\x06\xb0\x01\x00\x124\n\x1160:32:b1:dc:65:81\x12\x19\x08\xd8\xc8\xbf\xf0\x04\x10\xd9\x89\x85\xf2\x1c\x18\x17 \x03(\x94\x070\nX>`V\xa8\x01\x0b\xb0\x01\x00\x125\n\x1164:fb:92:9c:8e:68\x12\x1a\x08\x9e\xd9\xc0\xf0\x04\x10\xcb\xb0\x86\xf2\x1c\x18\x1f \x00(\x94\x070\nX>`\xee\x02\xa8\x01\x05\xb0\x01\x00\x125\n\x1164:fb:92:9c:8e:69\x12\x1a\x08\x9b\xdc\xc0\xf0\x04\x10\xcb\xb0\x86\xf2\x1c\x18' \x00(\x94\x070\nX>`\xc8\x03\xa8\x01\x05\xb0\x01\x00\x125\n\x1164:fb:92:9c:91:8c\x12\x1a\x08\x8b\x8d\xbf\xf0\x04\x10\xe3\xfd\x84\xf2\x1c\x18\x1b \x00(\x94\x070\nX>`\xf7\x01\xa8\x01\x01\xb0\x01\x00\x125\n\x1164:fb:92:9c:b6:f4\x12\x1a\x08\xff\xcf\xbe\xf0\x04\x10\xf5\x95\x87\xf2\x1c\x184 \x00(\x94\x070\nX>`\x84\x02\xa8\x01\x01\xb0\x01\x00\x125\n\x1164:fb:92:9d:b8:10\x12\x1a\x08\xe2\x88\xc0\xf0\x04\x10\xfa\x8f\x87\xf2\x1c\x18@ \x00(\x93\x070\nX>`\xc9\x04\xa8\x01\x01\xb0\x01\x00\x125\n\x1164:fb:92:9d:b8:11\x12\x1a\x08\x85\x85\xc0\xf0\x04\x10\xfa\x8f\x87\xf2\x1c\x18C \x00(\x93\x070\nX>`\xf0\x04\xa8\x01\x01\xb0\x01\x00\x126\n\x1164:fb:92:ab:f8:9f\x12\x1b\x08\x8c\xc8\xc0\xf0\x04\x10\xb0\xb9\x85\xf2\x1c\x18\x9e\x01 \x03(\x93\x070\nX>`\xe7\x08\xa8\x01\x0b\xb0\x01\x00\x126\n\x1164:fb:92:ab:f8:a0\x12\x1b\x08\xd5\xbd\xc0\xf0\x04\x10\xa1\xcb\x85\xf2\x1c\x18\x9d\x01 \x03(\x93\x070\nX>`\xc7\x07\xa8\x01\x0b\xb0\x01\x00\x124\n\x1174:da:88:ca:16:c6\x12\x19\x08\xd5\x90\xbe\xf0\x04\x10\xf9\xfa\x85\xf2\x1c\x18\x19 \x03(\x94\x070\nX>`U\xa8\x01\x02\xb0\x01\x00\x124\n\x117e:61:66:81:c7:49\x12\x19\x08\xf2\xde\xbe\xf0\x04\x10\xd2\xfa\x83\xf2\x1c\x18\x14 \x03(\x93\x070\nX>`G\xa8\x01\x01\xb0\x01\x00\x125\n\x119c:53:22:66:c8:52\x12\x1a\x08\x9e\xe7\xbf\xf0\x04\x10\xe1\xe8\x83\xf2\x1c\x18B \x03(\x93\x070\nX>`\xcf\x05\xa8\x01\x04\xb0\x01\x00\x125\n\x11b4:f9:49:3b:ad:e5\x12\x1a\x08\xe7\xd5\xbd\xf0\x04\x10\xe7\xe2\x83\xf2\x1c\x18H \x03(\x93\x070\nX>`\xd5\x04\xa8\x01\x06\xb0\x01\x00\x125\n\x11b4:f9:49:3b:ad:e8\x12\x1a\x08\xcb\xd0\xbd\xf0\x04\x10\xec\xdc\x83\xf2\x1c\x18K \x03(\x94\x070\nX>`\xd4\x04\xa8\x01\x06\xb0\x01\x00\x125\n\x1184:d8:1b:b1:69:6e\x12\x1a\x08\x9c\xcb\xbc\xf0\x04\x10\xaa\xaa\x84\xf2\x1c\x18k \x03(\x95\x070\nX=`\xf0\x05\xa8\x01\n\xb0\x01\x00\x125\n\x119c:53:22:66:ce:5a\x12\x1a\x08\xa6\xb8\xbf\xf0\x04\x10\xf6\xd0\x83\xf2\x1c\x18\x18 \x03(\x93\x070\nX=`\xa1\x01\xa8\x01\x02\xb0\x01\x00\x125\n\x11a2:53:22:66:c8:52\x12\x1a\x08\x97\xf0\xbf\xf0\x04\x10\xec\xdc\x83\xf2\x1c\x18C \x03(\x93\x070\nX=`\xce\x05\xa8\x01\x04\xb0\x01\x00\x125\n\x11a2:53:22:66:ce:5a\x12\x1a\x08\xe7\xb6\xbf\xf0\x04\x10\xf6\xd0\x83\xf2\x1c\x18\x19 \x03(\x93\x070\x0bX=`\xb1\x01\xa8\x01\x02\xb0\x01\x00\x125\n\x11a6:53:22:66:c8:52\x12\x1a\x08\xbc\xe9\xbf\xf0\x04\x10\xe7\xe2\x83\xf2\x1c\x18? \x03(\x93\x070\nX=`\xa5\x04\xa8\x01\x04\xb0\x01\x00\x125\n\x11a6:53:22:66:ce:5a\x12\x1a\x08\xa6\xb8\xbf\xf0\x04\x10\xf1\xd6\x83\xf2\x1c\x18\x1c \x03(\x93\x070\x0bX=`\xfd\x01\xa8\x01\x02\xb0\x01\x00\x122\n\x0f42:49:f:2:36:f8\x12\x19\x08\xe5\xb9\xbf\xf0\x04\x10\xb2\x89\x83\xf2\x1c\x18\x14 \x03(\x93\x070\nX/`K\xa8\x01\x0b\xb0\x01\x00\x125\n\x11dc:62:79:a6:94:22\x12\x1a\x08\xf7\xa4\xbf\xf0\x04\x10\xa8\x95\x83\xf2\x1c\x18\x1f \x00(\x93\x070\nX,`\x9b\x02\xa8\x01\t\xb0\x01\x00\x125\n\x11dc:62:79:a6:94:1e\x12\x1a\x08\xf6\xca\xbf\xf0\x04\x10\xad\x8f\x83\xf2\x1c\x18( \x00(\x94\x070\nX+`\x97\x02\xa8\x01\t\xb0\x01\x00\x125\n\x11e2:62:79:a6:94:22\x12\x1a\x08\xac\x8c\xbf\xf0\x04\x10\xad\x8f\x83\xf2\x1c\x18% \x00(\x94\x070\nX*`\x9a\x02\xa8\x01\t\xb0\x01\x00\x125\n\x1164:fb:92:ad:b2:23\x12\x1a\x08\xbe\x85\xbe\xf0\x04\x10\xf9\x99\x8e\xf2\x1c\x18t \x00(\x96\x070\nX?`\x80\x07\xa8\x01\x05\xb0\x01\x00\x125\n\x11b4:b0:24:4a:2a:84\x12\x1a\x08\xe3\xf0\xbe\xf0\x04\x10\xa6\x8a\x89\xf2\x1c\x18B \x03(\x94\x070\nX?`\xd1\x05\xa8\x01\x0b\xb0\x01\x00\x125\n\x11f0:a7:31:f8:3a:aa\x12\x1a\x08\xd7\x8d\xbe\xf0\x04\x10\xf2\xb0\x88\xf2\x1c\x18* \x00(\x94\x070\nX?`\xbd\x02\xa8\x01\x0b\xb0\x01\x00\x126\n\x113c:52:a1:6e:3f:76\x12\x1b\x08\x8c\xc8\xc0\xf0\x04\x10\x86\x99\x88\xf2\x1c\x18\xcf\x01 \x00(\x94\x070\nX>`\x96\x08\xa8\x01\x0b\xb0\x01\x00\x126\n\x1154:af:97:4f:10:ca\x12\x1b\x08\xc4\xc8\xb9\xf0\x04\x10\x8e\xbd\x8a\xf2\x1c\x18\x86\x01 \x00(\x98\x070\nX>`\xb7\x08\xa8\x01\x01\xb0\x01\x00\x125\n\x1164:fb:92:ad:b2:24\x12\x1a\x08\xf5\xe9\xbd\xf0\x04\x10\x83\x8e\x8e\xf2\x1c\x18g \x00(\x96\x070\nX>`\xa0\x07\xa8\x01\x05\xb0\x01\x00\x124\n\x1064:fb:92:ae:5:7b\x12\x1a\x08\xa8\x81\xbb\xf0\x04\x10\xcb\xcf\x8e\xf2\x1c\x18\x14 \x00(\x98\x070\nX>`\x8b\x01\xa8\x01\x05\xb0\x01\x00\x124\n\x1064:fb:92:ae:5:7c\x12\x1a\x08\xa8\x81\xbb\xf0\x04\x10\xcb\xcf\x8e\xf2\x1c\x18\x14 \x00(\x98\x070\nX>`\x8e\x01\xa8\x01\x05\xb0\x01\x00\x124\n\x10e4:fa:c4:98:5:9f\x12\x1a\x08\xe5\xed\xbe\xf0\x04\x10\x80\xe4\x8b\xf2\x1c\x18| \x00(\x95\x070\nX>`\x97\x08\xa8\x01\x06\xb0\x01\x00\x125\n\x11f0:a7:31:f7:a6:8a\x12\x1a\x08\x90\x8e\xbc\xf0\x04\x10\xfb\xe9\x8b\xf2\x1c\x18. \x00(\x96\x070\nX>`\xc8\x01\xa8\x01\x01\xb0\x01\x00\x125\n\x11bc:62:d2:91:80:f8\x12\x1a\x08\xa7\xcd\xbb\xf0\x04\x10\xc2\x96\x8b\xf2\x1c\x189 \x00(\x97\x070\nX6`\xf3\x02\xa8\x01\x01\xb0\x01\x00\x125\n\x11be:62:d2:91:80:f8\x12\x1a\x08\xcf\xc3\xbb\xf0\x04\x10\xc7\x90\x8b\xf2\x1c\x18> \x00(\x97\x070\nX6`\xc9\x03\xa8\x01\x01\xb0\x01\x00\x123\n\x1042:49:f:67:1c:b1\x12\x19\x08\xd0\x9d\xbb\xf0\x04\x10\xc6\xd5\x8e\xf2\x1c\x18\x14 \x00(\x98\x070\nX5`\\\xa8\x01\x0b\xb0\x01\x00"

如何将上述响应转换为字符串或字典

python protocol-buffers
1个回答
0
投票

首先,要解码响应,您需要与 api 响应模式匹配的相应 protobuf 文件。 然后通过安装protobuf工具,就可以使用protobuf编译器生成一个可以读取二进制数据的python类。

© www.soinside.com 2019 - 2024. All rights reserved.