python - Django MongoDB 引擎 DebugCursor "not JSON serializable"

标签 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'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

有人知道我做错了什么吗?

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

干杯!

最佳答案

你是想序列化一份数据吗?如果是这样,就改变

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

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

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

如果您正在尝试序列化多条数据,您可以保留find,然后遍历游标并序列化每条数据。

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

关于python - Django MongoDB 引擎 DebugCursor "not JSON serializable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10172350/

相关文章:

python - Tkinter 文档与 PEP 8 相矛盾

html - 将 Django URL 插入自定义电子邮件模板

python - 从内存中的数据初始化属于 ManyToManyField 的对象

javascript - 匹配多个字母的准确出现次数

ruby-on-rails - Mongoid 默认范围覆盖默认值。为什么?

python - 如何从图像中删除或清除轮廓?

python - 朴素贝叶斯文本分类结果不正确

python - 通过一些检查获取一组数字之间的原始输入

python - 在 iPad 上进行选择时,模态内的自动完成功能效果不佳

node.js - 如何使用 amcharts 显示来自 mongodb 的 getdata