Select 并从列表中转换字节对象

Select and Convert bytes object from a list

我已经在脑海中尝试了所有方法,但没有成功。谁能帮我从下面的列表中找到 select 字节对象?

[('uid=xxxxxx,o=center', {'userCertificate;binary': [b'0\x82\x07q0\x82\x05Y\xa0\x03\x02\x01\x02\x02\x10`\ .....']})]

这是 openldap 搜索的结果,我想 select 条目的 userCertificate 部分并将其转换为 base64 文本。当我手动 select 只有字节对象时 - b'0\x82\x07q0\x82\x05Y\xa0\x03\x02\x01\x02\x02\x10`\ .....' 部分我可以使用 base64.b64encode(bytes_variable) 将其转换为证书字符串,但我必须自动化此字节对象的 selection。我试图将此列表转换为字符串并使用正则表达式仅提取带有 b'' 的部分,但我无法将其转换为正确的证书格式。任何想法如何做到这一点?

您有一个包含单个元组的 Python 列表。该元组的第二个元素是字典。那本字典只有一个键。它的值是一个包含一项的列表。

所以...

list_ = [('uid=xxxxxx,o=center', {'userCertificate;binary': [b'0\x82\x07q0\x82\x05Y\xa0\x03\x02\x01\x02\x02\x10']})]

bytes_object = list_[0][1]['userCertificate;binary'][0]

注:

字节被截断以使其语法正确