如何从ObjectId获取实际的字符串ID(' 53f466e60ffa5927709972e8')?
这是导致错误的行
humans = [humanInstance[0].id]
更新:我做了
humans = [str(humanInstance[0].id)]
现在我得到了
['53f466e60ffa5927709972e8'] is not a valid ObjectId
为什么这不是有效的ObjectID,我该如何获得? :/
答案 0 :(得分:0)
好消息是'53f466e60ffa5927709972e8'
看起来像一个有效的ObjectId字符串:
有效的ObjectId(12字节二进制或24字符十六进制字符串)
src:PyMongo ObjectId
您可以转换为字符串,也可以通过以下方式转换为字符串:
"%s" % humanInstance[0]
或者获取列表使用理解:
["%s" human for human in humanInstance]
但是,您的错误是因为它期望humans
是ObjectId或者可以转换为ObjectId(字符串很好)但是您提供了一个列表!
['53f466e60ffa5927709972e8'] is not a valid ObjectId
尝试设置humans = '53f466e60ffa5927709972e8'
或将您的文档架构更改为ListField
ObjectIdFields
或ReferenceFields