某些数据库(例如sqlite3)允许您定义转换器和适配器函数,因此您可以将文本检索为str 而不是 unicode 。不幸的是,MongoDB没有为任何常见的类型(例如str,decimal或datetime)提供此选项:
消除了Mongo选项之后,剩下的工作就是在获取数据后编写Python代码进行转换。您可以编写一个遍历结果以转换每个字段的递归函数。
作为一种肮脏的替代方法,这里有一点技巧可能有用:
>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}