py-bson / bson

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What does the AttributeError about iterkeys mean in dumps a unicode string ?

leaveye opened this issue · comments

In comparing dumps() between json and bson 0.4.7 module, I encounting this:

>>> s = u'你我他'
>>> s
u'\u4f60\u6211\u4ed6'
>>> json.dumps(s)
'"\\u4f60\\u6211\\u4ed6"'
>>> bson.dumps(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/bson/__init__.py", line 40, in dumps
    generator_func=generator, on_unknown=on_unknown)
  File "/usr/local/lib/python2.7/dist-packages/bson/codec.py", line 223, in encode_document
    key_iter = iterkeys(obj)
  File "/usr/local/lib/python2.7/dist-packages/six.py", line 593, in iterkeys
    return d.iterkeys(**kw)
AttributeError: 'unicode' object has no attribute 'iterkeys'

You can't use single character data type. should use with dict.