Mongo Change Stream以二进制格式重新调整
为了能够编写mongo change流脚本,我想将字节数组编码为一种命令行参数安全的格式。
pprint.pprint(change['_id']['_data'])
(b'\x82[8\x92G\x00\x00\x00\x01Fd_id\x00d[8\x91\xf2.\xc2\xd4\x00\x0b\xabO\x98'
b'\x00Z\x10\x04\x16,\x92\xf8\xbf\x92G\x87\x8d1\xff(\x1a\x1b{\xc8\x04')
将二进制数组文本转换为参数的安全格式是什么?
从二进制格式转换为给定格式,并从给定格式输入str()转换回二进制的示例将很有帮助。
base64.b85encode(change['_id']['_data']).decode('ascii')
'f?GI}M*si-0Y+qBX=DIoTR4&OF2d9R3#(6<09p_P7A%tZzmi9XjWPcy8XJ4a1O'
从二进制版本转换为base85版本有效,但是我似乎找不到回溯的方式。
编辑:重新打开Rational
我认为这个问题不应被标记为重复,因为该问题的目标是不代表人类可读字符/编码的随机字节数组的转换。如下所述,上一个问题着重于将字符串转换为二进制数组并返回,这是二进制的特殊情况,而我的用例要求通用的解决方案。
答案 0 :(得分:0)
哦,很酷,我想我已经弄明白了
base64.b85decode
将字符串和二进制作为输入。
示例:
b = b'\x82[8\x929\x00\x00\x00\x04Fd'
b == base64.b85decode(base64.b85encode(b).decode('ascii'))
True