在pymongo中如何实现输出的漂亮打印

6
我正在使用Python中的驱动程序来处理Mongodb。每次在python shell中运行查询时,返回的输出结果很难理解。我已经在mongo shell中使用了.pretty()选项,可以以结构化的方式显示输出结果。
我想知道是否有类似于pretty()的方法在中可以以结构化的方式返回输出结果?
5个回答

6
我想知道在 PyMongo 中是否有类似于 pretty() 的方法。 No,PyMongo 没有提供这样的方法。它只在 shell 中可用。你需要使用 pprint 函数,该函数来自pprint 模块。

3
实际上,您也可以自己编写程序,例如:
db = connection.[dbname]

collection = db.[yourcollectionname]

for col in collection.find({}):

    for keys in col.keys(): 

        print ('{', keys, ":" , col[keys] , '}' )

我认为这将会是有帮助的,或者可以作为一个选择。


0

没有直接的方法以结构化的方式打印pymongo的输出。

因为pymongo的输出是一个dict

print(json.dumps('variable with out of pymongo query')) 

我认为这将符合你的需求。


0

我对这个也有点新,但我可能已经找到了一个可行的答案,适用于那些正在寻找的人。我使用的库包括pymongobsonjsonfrom bson import json_utilfrom bson.json_util import dumps, loads

如果你想要打印(或返回)的话,请尝试:

print(loads(dumps(stringToPrint, indent=4, default=json_util.default)))

如果您的数据已经使用了loads,那么在这个语句中就不需要再使用loads。

如果您想使用return,请省略第一个括号。

例如:

return json.loads(json.dumps(string, ..... )

如果您已经导入了大量数据和转储,可以省略json。
我没有尝试过更改“缩进”值(因为这对我非常有效),但是如果您不喜欢输出的外观,请尝试更改它。

-1

这可能取决于你的IDE,而不是pymongo本身。pymongo负责操作数据并与mongodb通信。我使用带有PTVS的Visual Studio,并且Visual Studio提供了这些选项。PyCharm也是一个很好的IDE选择,它可以让你以格式化的结构查看代码变量和JSON。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接