import subprocess
def pbdecode(data):
process = subprocess.Popen(['./protobuf/protoc.exe', '--decode_raw'],
stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output = error = None
try:
output, error = process.communicate(data)
except OSError:
pass
finally:
if process.poll() != 0:
process.wait()
return output.decode(encoding='utf-8')
f = open("./testprotobuf.bin", "rb")
data = f.read()
print('data:\n', pbdecode(data))
通过将response返回的content(二进制)内容,通过protoc反解析得到可读的二进制内容output。
再将output使用utf-8转码,获得字符串对象,在进行相应解析即可。