py-bson / bson

Independent BSON codec for Python that doesn't depend on MongoDB.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Not support unicode character? 

shadowofs opened this issue · comments

commented

I encounter a problem with unicode character. It works fine with utf-8 encoding. But if I translate the string into unicode, it reports error like this:

>>> a="\xe2\x97\x8f"
>>> bson.loads(bson.dumps({"key":a}))
{u'key': '\xe2\x97\x8f'}
>>> a.decode("utf-8")
u'\u25cf'
>>> a=a.decode("utf-8")
>>> bson.loads(bson.dumps({"key":a}))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/bson/__init__.py", line 47, in loads
    return decode_document(data, 0)[1]
  File "/usr/local/lib/python2.7/dist-packages/bson/codec.py", line 297, in decode_document
    value = unicode(value)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
Python Version: 2.7.9
bson version: 0.4.7

For now, I have to encode my unicode string first to use bson :P
Thanks for the help.

Thanks for your report

commented

I might have same problem on Python 3. This code raises UnicodeDecodeError:

import bson
data = {'message_cache': {b"b\nE2f\x0e\x88\xfb\x9aK\xb2\xb9\xd3x\x89'": {'action': 'message', 'message_id': b"b\nE2f\x0e\x88\xfb\x9aK\xb2\xb9\xd3x\x89'", 'receiver_public_key': b'0\x82\x04"0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x82\x04\x0f\x000\x82\x04\n\x02\x82\x04\x01\x00\xc8zu\x08\xef\xceg\x9e\xa9^\xdfz\x86\x8a\x02\x0bj\xbe\xbe\x9e\x04\xd4&.|]#3K[\x011\xe8\xce\x88\\\xd6\xf3i\xe1c\xb6P\xba\xa20\xa1\x8e\xac\x13\x89\x0e\xaa\xdbo\x17n\x84\xceI \x8a\xcb\xe1vf@\x89\x85`\x808\xea\x9b\xb8\x82\xfc\x1f\xdd}Z$\xd8H\x8e"\x8c\xdd\xa6\x91h\xfb\x90rI\x14\xa6\x15Py{.\xfb\x14\xe9\xde\xc9\xbf\r\x82]L`\x1ct\xb3\x06e\x9f_\x96\xe9\xc2\xbc\x0b\x14\xe4\xdcC\xfe\x9c\xddIM\xce\xa2\x89\xff \xcf\xc7\x138\x93\xa8\xf0\xe5\xfb\xad\xf0\x19\xa2\x15\xb8\x8a\xa4M2;\x967\xa5:\x80\xfd\x94\xa5\xedBC\xfa\xe9N\xf4\xd4\x88SY\xa0S\x12J\x85\x1eT\xe8\x97\x1f\x8b\xe1\xcc\xba\x1d\xeb\xae\xe4\xcel\xa3\xacaB\x9cq\t\xc1~o$\x1d \x1e}\xf9\x8e\xe3t\x99\x94&\x96\x0e\x19\x9aU\xc7\xe5\x03\xad\x0b\x94ttF\xac%\x8f<$Y\xc3=\xf4!\xfa.\xa1\x93k3a\x8d4i\xd0\xb1\x87qr\x98nG\tF}\xb0\xa3\x83\xcd\x99\x1f\xf0va\x91\x88P`\xe0\x90\x16q\x7f\xc4!Z9\x06w,\xaa\x07\xa3Z\xf6\x03\x1eJq\xa2.:\x1b\x01\'\x162\x83\x8awr\xa5\xecG\x807\x88\\\xcaWA\xc6rg=\x0f\x11\xcd\xf1\x83R\x07\xb8h\xf0\x14\xdd\xbc\xfeF6n\xd6\xf0\xb0\x01\xc1\xaf\x8b\xb1\x01X\xdaI\xee\xe82/V\x83\xf5\xb4?>\xdd\xab\xb2\xec\xc1\xfe\xc9\xe9\x80\xc8\xd2%\x05J\xd6\xcc\x90U\x8ey\xc4\xd1\x81\x19\x16\x89!\xff \xf1\xf7\x91\x00^\xc9\xe7\x1a)bzVUn\r\t9_\x0c\x19\x1e+!\x08\xdc\xa4{\x89\xa6b\x8d\x81\xf9m\x1d\x07\x94i\xaa\t\x97)\xc7\xcf\xc5p\xbbKi\x1f\x9a%\xefu\xa9\xb4\xc2\x9bT8\xa4\xae\xf87\xbe\x18"c\x8e\xfd\xc3j\x1b\xd37\xef#t\xf8\xc7v\xfc\x8f:\x1f\x9a\xc8\x9d\x8e1\xb9s\xa2\xa1X\xf9\xf6\x145K\x1f\x7f\xec\x80}\x98\xee\xe0J\xfb\x0e<\x96\xf1)\xeeq\xc6\rV\xda|\x84\xe9\xa4\xe0A\xf4_Jy\t\xe4\xdb\x91\x84\xa5\xc0\xa0\xa3\xec\x7f\xa7\xea\xaa\xa5S\xbf$\x12Y\x00\x9e+\xf9\xafh\x88m0|\x94\xa5\xcal:\x14\xaa\xf0\xd3\n\x9b\x0c\x80\x97\xf1x\xb8m\x04\x86ox\t\x9d\x1e\n\xeal\\/K>z\x85@\xde\x1cn\xe2\xf0\xf3\x02\xeb\x04\xd2\xb1\x1a\xaf-{|\xab\x1c\x1b\xad@\x1e=\xb0H8>A,?\xf2(\x98\xbcp\x98\xf6\x10\x948\x92\xa1\xd40ZF\xba\xf5\xd5\xc4\xd6c\xca1r{j\x94\xd0\x9b\xda\x9c5k\xee\xef|\x88\x97N\xf1\xab\xe77\x0e\xf3\xf6t#\xf32.\xab\xdb\x80ylE`rwc\xe2ED\x0e\xb7L\x07\\\xe9+\xc6{\x86\x02L\x85\xac\xed\x1e\x01\xc5\xf1\xd7\xf9{\t\x8f\xe9\xd2\xd7\xb8\x87\xa3\x94\x9b\x03 \xa5J\xb0\x83\x98\xdcl\xee\x12\x9bt~Tp\xa9\x04y\xb7c\x83\x0b\x80\xd5\xb7\rc"\xc9\rb\xd5\xfb\xa4\xc1\xb3\x88d%\xfb\xc9\x88\xee\xd4\xa2u)@\xc6\x15\xc9\xf4B\xeeFM\xcev\x15\x8aJm\xf2Za;f\xdc\xdc\x04\xddy\xbab\xab\xb0%%n\xf0\xbe\xdb\xf5\xdbyBr\x1c\x08B\x1eA\x86\x1b\xc4\xa0\xec>\xce\xba~\xf4\xd7\xe2\x9c\xfd\x16>X\xde\xe0P\x9d\xb4a<b;\x87\xd2P.J/\xc4c\xd1L\xd7\xc4p\xa1 \xb7\xffL\xca7b0\xa2V\x90\x8a$\x8e\xfeOi\xbc\\\x19\xf8\xd3e,\xa0\xe4\xea!.\xb7\x03:n\xe1\xd5\x9f0\x8c\xc6g\xf7|\xc1\x92fy\xb3\xad\xa9+\x99\xd0!_y#\x91\xce}\xdcu\x15\xdf@\xfc;YP\xf7x[zn+\xd2\xfc\x9d\xb9\t\x88\xd8\xf2\x9a\xb4M~JX\xc9l\\\xd7n_][\xf7\x93\x93\x16\x0b|\x88\x97\xa4\xd0\xd3\'.Fk\x9c\xcf3Z\'K\x97j\xf6\x1d3d^\x93\xc8k\xe4\x92\xb8\x88\xf9U\xa9z\xe9\xddt\x02\x87\xc6\xc5\x1b\xd1r\t\xfb\x01E8\x9a\xa2\xfa<>\x8b\xf9Q=cU\xe0\xab\xc9\xe8V\x8b\x82\xee\xfc\x1dm\x07\xcfG\x02\x03\x01\x00\x01', 'message': b'\x00\x04\x00\x00"\xc0\xdb\xd80\xcd8\xaaJrh\xaa\xe31\xf0\xef\xe4\xe0\x94\xf5\xb9\x15f\x8f\x91k\xd0;\x96\x0f\xba\xca\x08\xa1p6\x10<\xabN\xe2\x0e\x1bD\xfa\x85\x00>\x10u\xf4@B\xde\xfe\xfb.\xbeH\x8a\xce\x05\x1a\xa1\x9cL2$\x17iJ\xc6^\x0b\x05\x17y\x15Y\xabr\xb0\x00\xb0U\xce\x00\xcf\xfd\x01_\xe6b\xf5\x11(/I\x81y\xcbYb\x03\xef\xaaN\x14\x8e\xdf5\xcbe\x83\xa3\x18\x10\xd7I\xbfx%B\xb5\xed9\xda,z\xff)yr\xb1r_ufa^\x1e\xc5\xe1\xf5\x7f=\xb5\xd3}\xd8d\x96\xef\xfa\x81M\x10\x0c)\xb0\x1c\xbaKo$\xbc\x9b\x94\x16\x1f\xabo\xc2\xc6\xc8\xd0;\n\x10p\x96\xaf\x80\x07\xb0-|\x92\xbc\xcf\x86\xd0\x9aUu\x84\xad\x08\xeb\x1d\x981\x06!a\xb1F \x9f\x90\x9c4\xf1t\xe7\xce\n\x0e\xc7\xcai\xd2\xaa@~(r4\xcb\xdaE\xfc\x85:\xbc\n\xad\xb4\xd7\x7f$9\t/\xb2\xc8\xe0\xf9\xa0\x10\x19\xb8\x9b\x99x\xd0\xbc\x14\x14\x99\'"U\x85\xfd\x8b\x90\x19\x00\x1b\n;\xf4\xe3\xd3\'5\x97\x84\xd8o\xcf<j\xd0\xfdr\x9d\x06\xc8I\xebp\x14\xd3\x08\xdb\xaa\x9f\xdc"6\xb1\xc9\xbeO\xadl\xbd\x1ekV\x13\xfb\x13\xde\xfa\xfae\x03g0\xd8\x13\x1as\xd5\'s\xa1U\x0b\xbe@\x8f\xbb\x1df\xf2\xe7\xf6v\x9eI\xff\xcc\xdb\xfb\x9d\x86En\xaf\x0e\x97\xd1{\x8c\xcb,\x95@\xe3\xe8\xd1\x03\xca\xc8\x83\xc6\xcdT\xc5#\xc34v\x1f\xa3O\x8e\x03j\xb7,R\xab\xffv0\t\xf8\xc7\xa5\x9e\xb7H\xbd\x99yHc\x18t\x84\xea;*\x07pI\xf2\x1d\xb6\x94\x83*W],\x84\xaf\xa897\xcf\xf9\xe3\xe6R\xb4m\n\xc7\xc8\x04\xbe\xc4\x93N<\xc8\xa9\x1d\xbf\xcf\xedx\x85\x91\x90\x87\xcd\xaa\xe7\xc0\x1a\xda\xa4^[\x92$wL\x9a\x00\x15\xe8\xb4\xe7\xf6\x15h\xd9\x04H\xf9#C\x83j\x1b\xc8\xaa\x8a\x82F\x91\xd9\\K;\xbcZ\xe1\xd0\x8a\x1d\xf5\xb3\xc2F\xc9\x8e\xfa^\xc9u GP\x95\x08\x93\xe6\xa7\xff\xc2P\xa4\xe9e\xd9?\x1b\x8d\xc9\xf2\x1b\xb8!\t0\xb5<\x18\x94/S\xd9\xf2!\xe8\xb9\x81\xaf\x97+\x96\x0fb+\x8a|\xb6.\xa4%o\xa0\x14\xb1@1+\x8e3)\x8d\x8f\x85TH\x9b8y\xa6:\xc1\xd1w\xfd\x98{\x1c.\xc21o-\x85\xad\xbd\x89\xa2(\x00B_\'\xdb \xd8\x90\xcfJ\xd4?\x05\xf6{\xf6\x19\xb7\xccEc;\xfa\x9d\xb3\xdc7c\xba\xf8\xe7\x12\xba^\xaf\xb7\xbc\xf4\xd6w\xbf\x92\xb2}\x02.S*\x8e\x86\xa5X\xf4\xf2E(\xc2\xfb\xf7\xae7\'L\xfac\xc0k\r\x100\xad\xd8\xfd\x17\x89\xe0C\x8b\xa7G:\x1a\xc7\t.}\x13j\xde|&\x0eB\xa7\x85-h\x11\xcc\xb5\xa6\xbb\xd3{Y\xe5\xb1\x89\xbc\x93\xa0zs\x04\x1c\xd9\x9bO\xac\xb4\xe7n\xf0\xa1N\xd7n(\xb1\xf3\x874mqBfn\xc5p\xd3\xa1~\\vf\x02\xa9\xa8<\xe1\xc5Y%\xb5)\x89\xcdqp\x9a1\xf2\t\xbb\xa2BB\x96\xf8T\r\x8cW\x10\x0f&\xc5*\x1d\x17H\xac\x12x\x8d\xab\xbc_Y\xdc\x9f\x1f\xca\x9e\xa2O\xd0t\xd2\x90\x17"\xbczm\xb2\\\xbd(\xc1\xf2\xd5427\xea\xf1\x13\xa1\xa8P]HKQ5yCUa:\x8b\xafN]z\xb5X\x8d\xbd\xec3D\xf7\xe6\x94\x16 W\x9a\xf2\xc1\xa2\xbc4\xb7\xfa)\xa8\xd4\xbc\x04\x97\x1f\x8c b\xbb\x1a\x04i#\\{8K\x18\xbe\x96\xa6Wa\xe5?\x9f\xbdo\x1b<\x1eO\xdeN\xcd\x849\'\xfaT>\xec&\x85\'\xe0\x9d\x9fJC\xdf\xb4@%\x02\xa7\xaec\x8a\xa6z\x9e\xa8\xeb\xbc\xdbL\xc4\xf9El\x80\x9b\x93cd\x1c\xb8\xaf\xe2\xc9\xa2\xf6\x06\x85\x8a\x18\x10\xee\xa4(\x1dZO.*O\x7f{P!\x19W?\xe4c\xea\xc6[\xd8\xe7\xa0\xb5\xdc\xc0\x17\xdb6\xb3\x91R}\x1fh\xe2\xe2\xccjU\xf9\x88G\x8f\x95l\xe7\xbcCy\xdb\'\xb8/"*\xf7f\xde\xda\x871&\xfa\x13I\xe5\xa2\xd7\x07\xb16 \x8d\xd4\x9b\xec\x97vPE\xd1\xd5\x94\x8bi\xd7w\xe2\xb6 -\xef~\x8bw\xb7\x15\xa0}\xbb\xb4N\xc0\r\x01>\xf4\x89\x12\xfd\x03\xe7\xfc3\xb9\xbc\xcf-e,GM\x955\xf6\xed\x8ew\x8d\xdf\x8c\t\xa9\xce?\x8f\xbc\x0f\x1aW\xdf\xb5\xeb\xc0\xbb#\x19\xc5\xb5\xc5z\x0e\xa82\xa6\x03%$\xac\xc3Uk?\x03~\x97Z\xbb\x9f8&]\x84\x01\xeaA\xbf\x92\xc5n9\xb2-\x15\xa2\x13\xb1X\xd9v\x83:\x8d\x04\x0c\xbb\xf5\xdbi\x92\xc4\xeb\xecW\x0e\xd0\xbcM\xc3>0\xbd%\xda&%\xab\x94\xedZ\xd3\xef\\\x9d\xba\x8c\rHo\xd9@\xbb\n\x0c\xed=\xd9\xe3=\x0e\x1e_\xea\xe9\xe1\x8c{\xed\xaa\xa9\x94M~\xeb\x13fM|\xae\xd7:)gN\xcd\x07\x94\xe7j\x8d7\xae?!>\xa4\xd3z\xfe\xb9\xd4<\xf31`JH&`qqV@\xa1\xa3x\xff\x00\x11W\xfe\xf9\xcf\xe6\x89\x7f\xb8=\xbb\xf2}3\xdd\xd8NK\x02\xbdnM\xad\x88T\xc6\xe6@\xb0\x1e\xaa\x08\'\xb7+l7(z\xcf\xc3\x0b\xfaZ\xe5\xc9\\[f\x8aB0E\xc6\x9eo\x97\x9ae\xbb\x03\xa6|\xda\xe2\x0fTl\x7fjG\xafj\xf4\x88\xcd\xf9\x9a\x01[z\xe3BX7\xd3\xa2\xa6qF\x03w9\x80\x8886\x8c\x1ch\xe3\xc5}\xa3\xa4\x00\xee\xfcY8\x83P\x02\x9c\xac\xff[\x0f\x14[\x12W\xa3f\xb4\xdb|\xff\xb3S\x9f\x0e\x84\x1d|\xf4n\x02\xec\xb4\x9a\xe9\n\x08\xa0{\x80\x82\x14\t\xc1\x1e\xc1-\xa1\x94\xe8\xcd)\xd8,D\x08\xc5\xb2\x8bKf]\xa8A1\xb7u\x9b\x99\x83\x93\x19\x8b|\xc3n\x1c\xf9zGe\x88w3\xda\xf8Q(+L\x0fU\x13\x07\xde](6j\xeeM\xc2\xef\x8dpy\xb0\x96|\x843\xd2,\xa1~\xe4\xe7\'\xbd=\xde#\xaf\xd9UB!\x88\x1a\xb2y\xcdA\xfai\xdb\x89\x12\xf5\xcfhM\x84\xf6W\xa8\xab\xad\xd3\x054e\'\xe41\xc3.\xa5\xcb\xbf5\xf9\xc5\xcac\xb6\xd8\r<\xd5\x11\x17G\xeb\x1b\x93:9\t#\x05\xad\xf8\xd3k\xe3)\x84\xbc\x7f\xe6\x86u6a:{m\x99\xc3\x9e;\x9f\xe8\xb8a\xb7n\xb7^\xde<d\xca\x8c\x8f\xe1\xf4\xf5\xd1\x87\x8f\xb6\x16/\x95z\xfe\xdaS3\xd1\xae\xc1uK\x05\xe5\x05H\xee\x90;Q\xe5S^\xa9\xb2g\xaad\r\x1a:$\xbd\x04^(\xc7\x93\xdaj.F\x8c\x0c\xc6|\xe5`\xbe\xedm#\x16\x1c\x89\x1c\xe5\xc81\x87\xbd\x85/\x81 \xac\xa1v\xa5\x92\xdahd=\xbb\xd9\xc9\xfa\x15\x84\x0cpoD7\xf4\x8c\xea\x07)a\xf6\xc8\xbb\xda\xdcp\xd6A\x8f\xeehk"We\x84\xf8\t\xd0r\x1cOw\x81\xbf\x97\x00\x9bU\xe2]\xfa\x8ficM\xab\x14g\x1e\xb7k\xc7\x8bF\xb2w"\x86vb\x83ND\xe2%\xe0\x05\xa5\xa6\xdfdF;\xc7\xf3\xa7\xf3\x0e\xe6}\n\xdc\x08\xb8\xb7IoI\n\xa9=u\xbb\xd9Z\xa5\x80QA\xc7\x8d\x92\x10yt\xdd\xad\x04\xf2\xe5]C\xcd->\xc3\x8a}\x02\xff\xca\x11bkM[\xc8s\xfdj\xa8\r\\)Z\x93\x1e\x04\xd9E>=\xf7\xa8\x13\xdb.\x15\xf9\xc5|\xa1\xe0\xcf\xc2O\xe0:\x92\n59*C\xb7o\xe0#z\x13A\xff\xb7F\x99\x1dH0N\xeb\x90Lj\x9b\xda\xbc\xfa\xf8\xcb6\xc1H\x8d\xc7\x03Zg`\x9d\xe1v\xdcY\xc8 \x98X\xef\x981\x8b\xe1\xeaB4\xc8\xd1k\xd9\xa9[\x9f\xc81\xf8\x8a\xd4\xe3c\x8c\x82\x84L\xf4\x81\x1c\xf6\xc5\x84T\xdeB\xc8/T$\x9f\x8c\x98\x95|J\xe1\x89\xe5x\x1f=9 g\x8d\xd6fIS\x0c\xf5\xc5O\xa6\xe5\xc1\xc7\x0b8\xf0U\xe5}\xc7\xae\xedJ\x81\x85wwM\x10f\xb4\xbc\xde_\x1b\xcf\xa7\xae\xbd\x93H\x86cE\xed\xf9\xe5\xb8\t\xa5p\xaf\xec\xcc\x92\xec\xc5\xdfw\xf19x\xffj\xe6\xdf\xa3>h&\x95B\x9a\xfa\xe8BC(\xc1\xb0\xe3P\xfe\x9a\xc2\xb0\x06Nw\xb4\x1d\x02%\xf8\xe9Da\x1c\xa7\\\xc2Z\x8b1E;-\xa80\x16\xf0=(\xbb\x86\xd4J\xd6]hO\x17>\xa5\xa7:\xbd\xcb>=\x10\x0f\xc2)\xe4\x1d\xde\x81\xc5\xdcU\xaa\xbc\xe8\xd7\x80\x18\xe5e\x9b`\x07\x1c\xa2\xde\xb9fH\x8b\x12`\xaa\x02x=.4km\xe7s\xb95\xb0\x85\xf4\x04-\xc6w\xff\xd49\xce\xe7`KXCZ\x04u\xff\xa4\xad\x07\xa8\x19\xf5e\xab`\x16\x02\xd2\xf3\x11\xa6(o=}\xf5\x93\xb7\x1c>$4\xd9\x05\xb4\x02\xdalW\xf5\xcb\xcbE\xadO\xb2\xab\xf6\xf0\xc6\x93\x9d\xf9S\xe0\xe9\xa3a\xc1\xb4\x84\xddD \xc34\x8e\x99\xcee(t\xb8X\xd8\xe5\x850\x1cP \xb5\xf4\xa3\xf3xq\nX\x9c<&\xc0\xce\x05m\xc1\x9f\xb6\x91\x86\xaf~\xd6\x9f\x9c\x88\x08\x9b\x8eM\x92\x13\xe9r\xb4w\x83\x17\x97;\xce\x9d\xce\xa7\xda\xfe\x9a\xb8\xce.\xa2\xf6\x03XI\xb8\xe8\xc2\x88\xa2[\xe9\x1bg\xf3\xba\xaf\xa9\x88\xaa\xcegVh\xad7\xb0vr\x05\x0esLM\xef[V\xa7\xbc\x18E\xbfJ\xc5\xf8\x0c\xe1\x96P/\xd5\x85(\xe5\x92\xd7\xc1#SR\xa7z\xf0;qD\xd2j\xb3\xf1#\xd8\xe6\x98\x9f\x1b`\xcf{\xfe\x8a\r\xe7\x11yF\x84\xd42K\xfe\xef\xa6M\xa3ys{|K]\xe8,\x8b\x9f\xb8\x12*\x91\x15\xc9\xe0\x9b/\xb3\x18\xba\x82\x8cH\x97)K2]\xcf\x83/\xc7%6R,E\x1b\nHb\xce\xb2\x89\xcf\x9e=\x0eng\xa5.X\xbcmL\xd5&\xca*\xb8\x1c\x95\xa0#7\xce\xa3\x13X\xb6\x00E\xfau\x83\xfd\x0b\xb5{\xa5\x13^\xe5\xdeQ!TD*\\\xbc*v\xb7\x87P\xd7\x01l\xab\xa4\xc7G\x96\xefC\xaf\xad\x9fQq\x8f\x0b\xf6\xc4\xbe\xa5\xbe_\x98K\xfaz-G@\xb6\xbf\xb4K\xaa\x04\xca\xab\t)\xb9-\x8a\x9f}h\x90<;\xce\xcb\xcb\x16j\x81\xff\n\x8a_X&\xe8$\xd5m\xb7\xcd\xe45\x8d\x86"\xf2\xee\xbf\x87\xc4\xaf+\xba\x7f\xea\'<\x96s\xcf\xfc.o\xf0\xb6\xcd\xe8\xe4\x0eV\xd5>\tm\xd8s4\x7f\x951}\xe7\x97\xfb\x08\x86\x05Z\xe3\x0cPhU\x95\xe8U#!\xc3\xc4\xb1J\x1fY\x11t\xef\xc0_\x93\x01_\x9a>\x8c\xc2UV\xbc\xd20~\xc8\xdc\x1a(\x9e\x8e\x10\xa5\xaf\xba\xd5\xac\x8f\xf57H\xf4\xa5\xf7\xf6tew\x0f\x836\xb8J\x87f\xf5\x02f[\x9d\xac*(\x9bP\xe8\xe7Z\x93S\x18\x1d\x19\xe3%\x13\x94Nf\xe9F\xcc\x17\xc0m\x85\x05\x87\x80\xb9\xffSz\xff\x01\x1c\x9e\xbaW|\x982N\xb9\x02j"\xf1^\xc6 \x91\xf8\xec\xbf\xa1\xb1\xb3<\x08\xc0A\r\x9a\xcb2\xb2O2\x90S\xbb\xd4I\xaeIa\x1b\x8f\xeb\xfd\x05\x80]\xd8\x1f\x18_\x01\xda\xcf\xea\xc3g\x1f\x0cF\xcfU\xcb\x90gp\x8d\xaf\xa5\x8f\x97\xf0\x18\xaa8\xf8<\xee\x881\xd8-\x05\xb9JR\x91*5w\xf77X\xc8\xe5i\xc3\xca\xd0\x14\x1c\xe4\xe9\x90\xdb\x88\x9d\xecOmR\xff\xba0\x12UJ\x1e\x04\xeei\x06S\xdd\xee]\xe5\xb39\xcc\xd5\x8e\xe4g!\xb8\x86\x18\x82\x15t\x89<>\xf0o\xbe[\xa6\xfa\x04\xd9\xdcZ\xed\xb340\x7f\xa4\xa6D\xcc\xd8T\x00\xef\xddG\xbe\xdfe\xa7\xb5\xf0\x16\x1b\x9a\xff\xdc\x1f\x8b\xca5\x1fQ\x93Wj\x14.\x07\xcd,g\xdeR\xa9w\xf1\x9ee\xb1\x99\xf7\xf4\xa6\xa5\x01\xd1q\x0f7h\x05t\x8d\xa2RjDST\xfe\xb2\xd4:\xa2\xc1\xc8(BS\xa8\xb9\xbd\x9a\xf4c\x11%-)w.\x7f\xf5\x8d\xc9.\x8f\x81\xa3hX\x8f\x9e\x16v\xb2\x1d36\x9c\x99\x91=B\xe4j4\xed\xd9\xb0\x12\xfdPK5\xcb\xc1\x1f\x82\xf6\xfa\xc5;o$W!z\x99\x9fmf\xcc\xff\xbc\xa6\xe6\xa8rt\x8cV\xfb~\xc7\xd9\xba\x87\xe8PK\xdeeGXA\x85x\xcb\x07\xd2{X\x1f\x8bE\xa1\x1d\xf1\x93\x04\xaa\xaa\xa9\x83\x81K\xb8x(~\xa4\xc5\x07<Z\xf8(\xbc,\xacb\x87`\x1bv\x17E 0w\xb1\xff\x97\xae\xd1h\x90fu\xeb\xe7M\x1c\xb1Z\xfd\xe9\xa0\x97c6D\x9e.\xa0\x06\x0c\xb0\xa6\xf2\x92rM\r\xe0\x83Uh\x84u\'\x14\x80\x98>\x984\xe0\xc3\x0cPI4\x82e+8\xaa\xfb\x02;V\xaa\xc0\x14\xc1\xedB*t\xb9\xf9\xb2\x81\x8d\x1aD[W\xc6\xe7/\xe9C[\xac\xd4\xaf:q\x9c\n\x898\xf4\x93\xb149\xeb\xd4\xf9\x8e\x940\x10\xda\x82\xf5"\xcbL\x8a\xb6D\x94\xedR\xec\xdchi\xbf\xb81\x8c\x18g\xd0\xbcxAH\x1a\x84#\x01\xcee\xfd\x8f\xa4\x1c^\x8b\x84\x19j\xfb\x7f^,+RB\x8a\xff\xd1\x1a\x1cNN\xb0\xe2H\x9cO\xe2', 'timestamp': 1550803285.4602194}}}
dump = bson.dumps(data)
bson.loads(dump)

EDIT: I made a pull request that fixes at least my problem: #93

0.5.8 released. :)