如何使用utf8编码的mongoengine.to_json()方法

时间:2015-02-23 05:11:49

标签: python-2.7 unicode mongoengine

我有这样的代码:

 import ast 
 objects = MenuModel.objects()
 data = ast.literal_eval(objects.to_json())

此代码返回:

    {
        "_id": {
            "$oid": "54eab211b0b7080827f3b9d3"
        }, 
        "name": "\\u0627\\u06cc\\u0646\\u0645 \\u06cc\\u0647 \\u06cc\\u0648\\u0646\\u06cc \\u06a9\\u062f", 
    }

我无法返回unicode数据。如何将“name”转换为unicode?

1 个答案:

答案 0 :(得分:1)

>>> import json
>>> json_text = json.dumps(u'\N{ARABIC LETTER ALEF}')
>>> json_text
'"\\u0627"'
>>> #XXX WRONG DO NOT DO IT!!!
>>> import ast; ast.literal_eval(json_text)
'\\u0627'

如果您需要将json文本转换为Python对象,请执行此操作:

>>> json.loads(json_text)
u'\u0627'

或者避免致电.to_json()并直接使用objects对象(必要时将其转换为dict。)