如何在 Python 中解压嵌套的 DBRef?

Posted

技术标签:

【中文标题】如何在 Python 中解压嵌套的 DBRef?【英文标题】:How to unpack nested DBRef in Python? 【发布时间】:2021-06-01 08:35:09 【问题描述】:

如何解压嵌套的 DBRefs?

我已经检查了 mongodb documentation,但我仍然不太明白如何解压括号内的字母数字值。

d =  
    "oId" : 567, 
    "notice" : [
        DBRef("noticeId", ObjectId("5f45177b93d7b757bcbd2d55"))
    ]


预期输出:

oId                   notice
567 5f45177b93d7b757bcbd2d55

【问题讨论】:

您可以使用dir() 找出对象具有的属性! DBRef 可能有一些你可以获得的 id 属性(反过来,在ObjectId 上调用str() 可能会很方便) 【参考方案1】:

您需要DBRef 对象的id 属性。 Documentation

import pandas as pd
from bson.json_util import DBRef, ObjectId

d = 
    "oId": 567,
    "notice": [
        DBRef("noticeId", ObjectId("5f45177b93d7b757bcbd2d55"))
    ]


data = 'oId': [d.get('oId')], 'notice': [str(d.get('notice')[0].id)]
df = pd.DataFrame.from_dict(data)
print(df)

给予:

   oId                    notice
0  567  5f45177b93d7b757bcbd2d55

【讨论】:

有没有办法将其实际转换为数据框,而不仅仅是检索值?

以上是关于如何在 Python 中解压嵌套的 DBRef?的主要内容,如果未能解决你的问题,请参考以下文章

如何在虚拟上实现 DBRef

Mongo 如何使用 DBRef 进行 $lookup

如何取消引用mgo中的dbref?

如何在python中获取嵌套异常的堆栈跟踪?

无法从 Spring Boot 应用程序中设置的 DBRef 中删除

如何解压多个不同格式的嵌套存档?