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

问题描述

你如何解压嵌套的 DBRefs?

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

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

预期输出

oId                   notice
567 5f45177b93d7b757bcbd2d55

解决方法

您需要 id 对象的 DBRef 属性。 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