Mongo变更流是以二进制格式重新处理的
为了能够编写mongo更改流的脚本,我希望将字节数组编码为命令行参数安全的格式。
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()返回二进制文件将很有帮助。
尝试1
base64.b85encode(change['_id']['_data']).decode('ascii')
'f?GI}M*si-0Y+qBX=DIoTR4&OF2d9R3#(6<09p_P7A%tZzmi9XjWPcy8XJ4a1O'从二进制到base85可以工作,但我似乎找不出回来的路。
编辑:重新打开Rational
我认为这个问题不应该被标记为重复,因为这个问题的目标是不代表人类可读的字符/编码的随机字节数组的转换。如下所示,前面的问题侧重于将字符串转换为二进制数组和back,这是二进制表示的特例,而我的用例则需要通用解决方案。
发布于 2018-07-03 11:31:50
太酷了,我想我已经弄明白了
base64.b85decode将以字符串和二进制作为输入。
示例:
b = b'\x82[8\x929\x00\x00\x00\x04Fd'
b == base64.b85decode(base64.b85encode(b).decode('ascii'))
Truehttps://stackoverflow.com/questions/51153175
复制相似问题