Python Django MongoDB引擎调试光标“;“不可序列化”;

Python Django MongoDB引擎调试光标“;“不可序列化”;,python,django,mongodb,pymongo,Python,Django,Mongodb,Pymongo,尝试在Django中序列化MongoDB游标 import json from pymongo import json_util results = json.dumps(results, default=json_util.default, separators=(',', ':')) 其中原始的结果类似于 [{u'_id': ObjectId('4f7c0f34705ff8294a00006f'), u'identifier': u'1', u'items': [{u'amoun

尝试在Django中序列化MongoDB游标

import json
from pymongo import json_util

results = json.dumps(results, default=json_util.default, separators=(',', ':'))
其中原始的
结果类似于

[{u'_id': ObjectId('4f7c0f34705ff8294a00006f'),
  u'identifier': u'1',
  u'items': [{u'amount': 9.99, u'name': u'PapayaWhip', u'quantity': 1}],
  u'location': None,
  u'timestamp': datetime.datetime(2012, 4, 4, 10, 7, 0, 596000),
  u'total': 141.25}]
from django.db import connections

connection = connections['default']

results = connection.get_collection('papayas_papaya')
results = results.find({
    'identifier': '1',
})
编辑:通过使用

[{u'_id': ObjectId('4f7c0f34705ff8294a00006f'),
  u'identifier': u'1',
  u'items': [{u'amount': 9.99, u'name': u'PapayaWhip', u'quantity': 1}],
  u'location': None,
  u'timestamp': datetime.datetime(2012, 4, 4, 10, 7, 0, 596000),
  u'total': 141.25}]
from django.db import connections

connection = connections['default']

results = connection.get_collection('papayas_papaya')
results = results.find({
    'identifier': '1',
})
给我

TypeError: <django_mongodb_engine.utils.DebugCursor object> is not JSON serializable
TypeError:不可序列化JSON
有人知道我做错了什么吗

使用应该序列化MongoDB文档,可能我的问题是我正在尝试序列化游标。(如何从光标获取文档?一个简单的元组“cast”?)


干杯

您是否仅尝试序列化一段数据?如果是这样的话,就换一个吧

results = results.find({
    'identifier': '1',
})

(尽管您确实应该区分结果和表示集合的变量。)

如果试图序列化多个数据段,可以保留
查找
,然后遍历光标并序列化每个数据段

serialized_results = [json.dumps(result, default=json_util.default, separators=(',', ':')) for result in results]

你真的应该使用Django的序列化系统,或者至少是一个可插拔的JSON序列化应用程序。

为了帮助你,我们至少需要看看你运行什么代码才能获得
结果。
@NolenRoyalty我已经展示了
结果
的样子;为了获得它,我使用了常规的PyMongo查询。无论如何,我已经更新了这个问题:-)最后将光标投射到一个元组,并将其转储。谢谢你的帮助:-)