我正在使用 pymongo 驱动程序与Mongodb一起使用Python。每当我在python shell中运行查询时,它都会返回一些非常难以理解的输出。我在mongo shell中使用了.pretty()
选项,它以结构化的方式提供输出。
我想知道 pymongo 中是否有类似pretty()
的方法,它可以以结构化方式返回输出?
答案 0 :(得分:6)
答案 1 :(得分:2)
实际上你也可以自己编程,如:
db = connection.[dbname]
collection = db.[yourcollectionname]
for col in collection.find({}):
for keys in col.keys():
print ('{', keys, ":" , col[keys] , '}' )
我认为这会有所帮助或将其视为一种选择。
答案 2 :(得分:0)
没有直接的方法以结构化的方式打印出pymongo。
因为出自pymongo是dict
print(json.dumps('带有pymongo查询的变量'))
这将符合您的目的我认为
答案 3 :(得分:0)
我对此也有点陌生,但我可能已经为正在寻找的人找到了可行的答案。我使用的库是 pymongo
、bson
、json
、from bson import json_util
和 from bson.json_util import dumps, loads
你想打印(或返回)的地方试试:
print(loads(dumps(stringToPrint, indent=4, default=json_util.default)))
如果您的数据已经在使用负载,则在此语句中您将不需要负载。
如果您想使用 return
,请省略第一个括号。
示例:
return json.loads(json.dumps(string, ..... )
如果您导入了加载和转储,则可以省略 json.
。
我还没有尝试过(因为这对我很有用)来改变“缩进”值,但如果您不喜欢输出的外观,请尝试更改它。
答案 4 :(得分:-1)
这可能取决于你的IDE,而不是pymongo本身。 pymongo负责操纵数据并与mongodb通信。我正在使用Visual Studio和PTVS,我有Visual Studio提供的这些选项。 PyCharm也是IDE的一个很好的选择,它允许您以格式化结构观察代码变量和JSON。