gpt4 book ai didi

python - 使用 pymongo 从 mongodb 检索文档时的有序属性?

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:27 24 4
gpt4 key购买 nike

当我将以下文档存储到 mongo 中时,类似于:

{
name: Somename,
profile: Someprofile
}

当我使用 find_one() 时:

我得到类似这样的结果:

{
profile: Someprofile,
_id: 35353432326532(random mongo id),
name: Somename
}

在 python 中有什么方法可以让我在 find_one 之前或之后做一些事情,这样我就可以得到一个 json 字符串的结果,其顺序如下:

{
_id: 35353432326532(random mongo id),
name: Somename,
profile: Someprofile
}

我尝试使用如下所示的 OrderedDict,但它似乎没有帮助。

somedocument = db.mycollection
theordereddict = OrderedDict(data_layer.find_one())
print str(theordereddict)

如何获得关于属性的正确顺序的输出字符串?在我将文档插入数据库之前,这个顺序是由其他东西决定的吗?

最佳答案

collections.OrderedDict 不会对键进行排序,它只是保留顺序,您需要按照要检索它们的顺序将键插入其中。

d = data_layer.find_one()
def key_function(tuple):
"""This defines the sort order for the sorted builtin"""
return tuple[0]
sorted_dict = collections.OrderedDict((k,v) for k, v in sorted(d.items(),
key=key_function))

也就是说,看起来 print str(sorted_dict) 没有给您想要的输出。我认为您需要手动构建已排序的字符串表示形式。例如:

s = "{" + ",".join(["%s:%s" for k,v in sorted(d.items(), key=key_function)]) + "}"

关于python - 使用 pymongo 从 mongodb 检索文档时的有序属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960755/

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