gpt4 book ai didi

python - JSON序列化MongoDB

转载 作者:IT老高 更新时间:2023-10-28 13:06:08 27 4
gpt4 key购买 nike

我正在使用 python 包 pymongo 从 mongodb 数据库中检索数据。

>>> r = collection.find()   # returns an object of class 'Cursor'

然后我转换为列表

>>> l = list(r)             # returns a 'list' of 'dict'

这是 print(l) 返回的内容:

>>> [{u'date': datetime.datetime(2009, 11, 10, 10, 45), u'_id': 1, u'name': u'name1', u'value': 11},{u'date': datetime.datetime(2013, 11, 10, 10, 45), u'_id': 2, u'name': u'name2', u'value': 22}]

现在我需要转换为 JSON 以便我可以操作它。

>>> json.dumps(l)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/json/__init__.py", line 231, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/json/encoder.py", line 178, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.datetime(2009, 11, 12, 11, 14) is not JSON serializable

我也尝试过关注 http://api.mongodb.org/python/1.7/api/pymongo/json_util.html 没有成功:编辑:链接的最新版本是 http://api.mongodb.org/python/current/api/bson/json_util.html

>>> json.dumps(l, default=json_util.default)  
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'json_util' is not defined

注意:我需要使用 R 包 rPython 及其函数 rPython::python.get("l") 将这个结果推送到 R

附加问题:dict列表中每个字段前的u(u'Date'、u'name'等)是什么?

最佳答案

您指出的 pymongo 文档已过时。如果您使用的是 1.7 版,我建议您更新。使用更新的版本,您可以这样做:

from bson.json_util import dumps

dumps(l)

https://pymongo.readthedocs.io/en/stable/api/bson/json_util.html

侧面回答:u'name'u'date'u'_id'等数据库中文档的字段名称。

关于python - JSON序列化MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19674311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com