PyMongo:ObjectId() 打印字符串而不是对象
PyMongo: ObjectId() prints string instead of Object
我正在尝试将 id
字符串转换为 ObjectId()
我有以下导入:
from pymongo import MongoClient
import pymongo
from bson.objectid import ObjectId
如果我打印:
print(ObjectId(session['id']))
print(ObjectId())
我得到以下信息:
58a09f4255c205690833f9dd
58f7d1606cb710c54a14ae82
预计:
ObjectId("58a09f4255c205690833f9dd")
ObjectId("58f7d1606cb710c54a14ae82")
仅供参考:
pymongo==3.4.0
bson==0.4.7
我试过了(没有成功):
import bson
print(bson.ObjectId(session['id']))
print(bson.ObjectId())
您确实已经将您的 ID string
转换为 ObjectId
。
作为打印函数 returns 你的 ObjectId
到 string
类型为了正确打印,而不是打印值本身,尝试打印类型。
var1 = ObjectId(session['id'])
var2 = ObjectId()
print(var1)
print(var2)
print(type(var1))
print(type(var2))
Returns:
58a09f4255c205690833f9dd
58f7d1606cb710c54a14ae82
<class 'bson.objectid.ObjectId'>
<class 'bson.objectid.ObjectId'>
所以您可以在您想要使用 ObjectId 的地方使用 var1
和 var2
。
在直接从 str
转换为 objectid
之前尝试使用 ObjectId.is_valid
验证是否是 objectid
return [=15= 的验证字符串] 所以你可以这样做:
if ObjectId(session['id']):
try:
id_object_valid = ObjectId(session['id'])
except (InvalidId, TypeError):
return False
我正在尝试将 id
字符串转换为 ObjectId()
我有以下导入:
from pymongo import MongoClient
import pymongo
from bson.objectid import ObjectId
如果我打印:
print(ObjectId(session['id']))
print(ObjectId())
我得到以下信息:
58a09f4255c205690833f9dd
58f7d1606cb710c54a14ae82
预计:
ObjectId("58a09f4255c205690833f9dd")
ObjectId("58f7d1606cb710c54a14ae82")
仅供参考:
pymongo==3.4.0
bson==0.4.7
我试过了(没有成功):
import bson
print(bson.ObjectId(session['id']))
print(bson.ObjectId())
您确实已经将您的 ID string
转换为 ObjectId
。
作为打印函数 returns 你的 ObjectId
到 string
类型为了正确打印,而不是打印值本身,尝试打印类型。
var1 = ObjectId(session['id'])
var2 = ObjectId()
print(var1)
print(var2)
print(type(var1))
print(type(var2))
Returns:
58a09f4255c205690833f9dd
58f7d1606cb710c54a14ae82
<class 'bson.objectid.ObjectId'>
<class 'bson.objectid.ObjectId'>
所以您可以在您想要使用 ObjectId 的地方使用 var1
和 var2
。
在直接从 str
转换为 objectid
之前尝试使用 ObjectId.is_valid
验证是否是 objectid
return [=15= 的验证字符串] 所以你可以这样做:
if ObjectId(session['id']):
try:
id_object_valid = ObjectId(session['id'])
except (InvalidId, TypeError):
return False