我见过的最常见的解决方案是从pymongo ie导入json_util
import json
from pymongo import json_util
results = connection.get_collection('papayas_papaya')
results = results.find({
'identifier': '1',
})
serialized_results = [json.dumps(result, default=json_util.default, separators=(',', ':')) for result in results]
Run Code Online (Sandbox Code Playgroud)
我使用pip将pymongo安装到我的Flask virtualenv中,即:
pip install pymongo
Run Code Online (Sandbox Code Playgroud)
运行上面的代码时,我不断收到以下错误:
ImportError: cannot import name json_util
Run Code Online (Sandbox Code Playgroud)
我可以在pymongo-2.3-py2.6.egg-info/installed-files.txt ../bson/json_util.py中看到这一行
任何人都有任何提示可以帮我弄清楚我做错了什么?
更新:进一步了解这一点 - 我已经设法让这个工作:
import pymongo
from bson.json_util import dumps
connection = pymongo.Connection("localhost", 27017)
db = connection.mydocs
def get():
cursor = db.foo.find({"name" : "bar"})
return dumps(cursor)
Run Code Online (Sandbox Code Playgroud)
我遇到的一个问题是试图独立安装bson - pymongo带来bson并分别导入bson导致问题.
感谢@Cagex指出我正确的方向
Bri*_*jes 13
看起来你想从bson而不是pymongo导入.我相信json_util最近被移到了那个模块. http://api.mongodb.org/python/current/api/bson/json_util.html
小智 5
我已经看到很多关于这个问题的帖子,但他们没有为我解决这个问题。对我有用的是使用dumps(),然后使用load():
import pymongo
from bson.json_util import dumps
from bson.json_util import loads
connection = pymongo.Connection("localhost", 27017)
db = connection.mydocs
def get():
cursor = db.foo.find({"name" : "bar"})
return loads(dumps(cursor))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20648 次 |
| 最近记录: |