当前位置: 首页 > 知识库问答 >
问题:

将pymongo游标转换为json

宇文峰
2023-03-14
  • 我知道这是一个相当普遍的问题。我正在编写一个小的Flask应用程序,并试图将一些查询反馈给视图。我已经连接到我的本地MongoDB设置,并进行了成功的查询——但我无法使用它生成json对象

我见过的最常见的解决方案是从pymongo导入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]

我已经安装pymongo到我的烧瓶虚拟环境使用pip i. e:

pip install pymongo

在运行上述代码时,我不断遇到以下错误:

ImportError: cannot import name json_util

我可以在pymongo-2.3-py2中看到这条线。6.egg-info/installed-files。txt/bson/json_util。派克

有没有人能帮我找出我做错了什么?

最新消息:经过进一步的研究,我已经成功地使它工作了:

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)

我遇到的问题之一是试图独立安装bson——pymongo带来了bson,单独导入bson会导致问题。

感谢@Cagex为我指明了正确的方向

共有3个答案

姬英武
2023-03-14

可以使用list()将pymongo游标转换为json对象。

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 = list(db.foo.find({"name" : "bar"}))
   return loads(dumps(cursor))
澹台庆
2023-03-14

我看过很多关于这个问题的帖子,但他们没有为我解决这个问题。对我有用的方法是先使用dumps(),然后加载():

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))
赖运珧
2023-03-14

看起来您希望从bson而不是pymongo导入。我相信json_util最近被转移到了那个模块。https://pymongo.readthedocs.io/en/stable/api/bson/json_util.html

 类似资料:
  • 将java转换为scala代码我面临一个奇怪的问题一个例子可以在这里找到https://gist.github.com/geoHeil/895260a04d3673b9848b345edf388a2d错误是 当试图将spark java转换为spark scala API时,我正在努力将这个java类https://github . com/DataSystemsLab/geos park/blo

  • 我正在尝试将球坐标转换为笛卡尔坐标,以绘制一个简单的三维金字塔。 下面是获取金字塔四个主要角的代码,具体取决于极角yrad和方位角xrad以及顶点坐标x和y: 方位角轴似乎工作正常,但问题是,在操纵极轴角时,当它们越过天顶或底部时,左右会互换,如图所示(选择顶部的mp4以更平滑地播放):http://gyazo.com/4a245713c232893960863cf4ea4186f6 怎么了?

  • 我试图将图像从极坐标转换为笛卡尔坐标,但在应用公式后,我得到了浮点坐标(r和teta),我不知道如何使用x和y的浮点来表示空间中的点。可能有一种方法可以将它们转换为整数,并仍然保留分布,但我不知道如何。我知道OpenCV中有像warpPolar这样的函数,但我想自己实现它。任何想法都会有帮助:) 这是我的代码:

  • 问题内容: 我正在尝试使用以下代码将Icon()转换为Image(): 问题是,函数在上抛出。 对于记录,该值为默认图标(通过获取) 以下是引发异常的详细信息: 如果您需要更多详细信息,请告诉我,我将编辑我的信息以添加它们。 谢谢! 问题答案: 刚刚找到了一个代码段,如果您想更频繁地包装那些表现不佳的LAF提供的图标,可能会有所帮助: 要在您的代码段中使用,只需传递任意组件:

  • 问题内容: 我有以下数据框: 我要这样 堆叠/堆叠似乎不起作用。 问题答案: 您正在寻找: 以及是否要重新排列列:

  • 问题内容: 如何使用Swift 将地址转换为坐标?我还没有代码,我正在寻找解决方案,但尚未找到任何人。 谢谢。 问题答案: 这很容易。 您还需要添加和导入CoreLocation框架。