如何将MongoDB“Row(oid = u'0123456789abcdef01234567')”转换为“0123456789abcdef01234567”?

时间:2017-10-16 13:35:02

标签: python mongodb

我在Python中使用Apache Spark和MongoDB。 最后,我从数据库中获取了一个入口行,从中我正在尝试获取_id列。 不幸的是,我收到了这种格式的ObjId:

Row(oid=u'0123456789abcdef01234567')

为了继续我的工作,我正在寻找某种转换,这将使对象看起来像这样:

0123456789abcdef01234567

当然,我可以对其进行细分,但是会有一种更优雅的方式。

1 个答案:

答案 0 :(得分:1)

由于它是一个对象,你必须使用一个点来访问它的属性:

obj.oid

然后你有一个unicode字符串,使用'utf-8'字符集对它进行编码,你得到字节,然后你必须解码才能得到你的字符串对象:

obj.oid.encode('utf-8').decode()

示例(python 3):

>>> s = u'hello'                 # unicode
>>> s.encode('utf-8')            # to bytes
b'hello'
>>> s.encode('utf-8').decode()   # to string
'hello'

示例(python 2):

>>> s = u'hello'                 # unicode
>>> s.encode('utf-8')            # to string
'hello'