title: Parse bson string in python?
body: <p>I have a bson formatted string in file</p>
  
  <p>I want to read that file and get the encoded json.</p>
  
  <p>I was looking into the example here:</p>
  
  <pre><code>&gt;&gt;&gt; from bson import BSON
  &gt;&gt;&gt; bson_string = BSON.encode({"hello": "world"})
  &gt;&gt;&gt; bson_string
  '\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00'
  &gt;&gt;&gt; bson_string.decode()
  {u'hello': u'world'}
  </code></pre>
  
  <p>from <a href="http://docs.mongodb.org/meta-driver/latest/legacy/bson/" rel="noreferrer">http://docs.mongodb.org/meta-driver/latest/legacy/bson/</a></p>
  
  <p>But what i have is say:</p>
  
  <pre><code>string = '\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00'
  </code></pre>
  
  <p>And now i want to parse this json?
  How do i do this?
  Thanks</p>
  
  <hr>
  
  <p>Can you try to parse this bson formatted string:</p>
  
  <pre><code>s = """'\x93\x01\x00\x00\x02_id\x00\x1a\x00\x00\x00auromotiveengineering.com\x00\x04name_servers\x00_\x00\x00\x00\x020\x00\x17\x00\x00\x00ns-2.activatedhost.com\x00\x021\x00\x17\x00\x00\x00ns-1.activatedhost.com\x00\x022\x00\x17\x00\x00\x00ns-3.activatedhost.com\x00\x00\nreputation\x00\x04categories\x00\x05\x00\x00\x00\x00\x03host_act\x00\xd7\x00\x00\x00\x03bnMtMi5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x03bnMtMy5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x03bnMtMS5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x00\x00'"""
  </code></pre>
  
  <p>So this is what I did:
  give 
  a jsonstring </p>
  
  <pre><code>   s = """'{ "_id" : "auromotiveengineering.com", "categories" : [ ], "host_act" : { "bnMtMi5hY3RpdmF0ZWRob3N0LmNvbQ==" : { "seen_first" : 1189555200, "seen_last" : 1189814400 }, "bnMtMS5hY3RpdmF0ZWRob3N0LmNvbQ==" : { "seen_first" : 1189555200, "seen_last" : 1189814400 }, "bnMtMy5hY3RpdmF0ZWRob3N0LmNvbQ==" : { "seen_first" : 1189555200, "seen_last" : 1189814400 } }, "name_servers" : [ \t"ns-2.activatedhost.com", \t"ns-1.activatedhost.com", \t"ns-3.activatedhost.com" ], "reputation" : null }"""
  </code></pre>
  
  <p>Now, loaded this string</p>
  
  <pre><code>jsn = json.loads(s)
  
  bson_string = BSON.encode(jsn)
  
  And then i copy paste bson_string 
  
  so bson_string = """'\x93\x01\x00\x00\x02_id\x00\x1a\x00\x00\x00auromotiveengineering.com\x00\x04name_servers\x00_\x00\x00\x00\x020\x00\x17\x00\x00\x00ns-2.activatedhost.com\x00\x021\x00\x17\x00\x00\x00ns-1.activatedhost.com\x00\x022\x00\x17\x00\x00\x00ns-3.activatedhost.com\x00\x00\nreputation\x00\x04categories\x00\x05\x00\x00\x00\x00\x03host_act\x00\xd7\x00\x00\x00\x03bnMtMi5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x03bnMtMy5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x03bnMtMS5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x00\x00
  """
  </code></pre>
  
  <p>and for this when i try.. it throws an error :(</p>
  
  <p>Another string where i have an error:</p>
  
  <pre><code>._idbrusselscityreporter.comcategorieshost_act�bnMzMC5kb21haW5jb250cm9sLmNvbQ==$seen_first�hLseen_last��NbnMyOS5kb21haW5jb250cm9sLmNvbQ==$seen_first�hLseen_last��Nname_serversA0ns30.domaincontrol.com1ns29.domaincontrol.com
  </code></pre>