在python中,从Connection对象的entries属性中提取的单个元素代表什么数据类型?

在python中,从Connection对象的entries属性中提取的单个元素代表什么数据类型?,python,Python,我一点也不精通python。我被要求查看其他人的python脚本,该脚本使用搜索ldap条目。顺便说一句,由于某种原因,我无法联系到原始开发人员,在它部署之前,需要进行测试的可视化代码检查。考虑到这些限制,请允许我继续 import ldap3 from ldap3 import Server,Connection, ALL conn = Connection(....) conn.search(....) for entry in conn.entries: if (len(entr

我一点也不精通python。我被要求查看其他人的python脚本,该脚本使用
搜索ldap条目
。顺便说一句,由于某种原因,我无法联系到原始开发人员,在它部署之前,需要进行测试的可视化代码检查。考虑到这些限制,请允许我继续

import ldap3
from ldap3 import Server,Connection, ALL

conn = Connection(....)
conn.search(....)
for entry in conn.entries:
    if (len(entry['cn']) > 0):
        ....
        name = entry['name']
        if name:
           user_name = str(name)
        else:
           user_name = "Bob"
第一个问题是
len(条目['cn'])>0
我喜欢将其解释为检查从ldap返回的cn值的字符长度,例如
cn=bob,ou=people,ou=foocomany
。我很确定
条目['cn']
不是字符串类型,但我不知道它代表什么数据类型。你能告诉我是什么类型的吗

我的第二个和第三个问题与原来的问题没有直接关系,但请允许我优雅地提出这些问题

我的第二个问题是,如果这个假设是正确的,
entry['cn']
应该转换成字符串类型,比如
str(entry['cn'])
。然后检查它的长度


我的第三个问题是关于
if
stmt。如果name不为null,我喜欢将其解释为
;如果name不为None,我喜欢将其解释为
。我解释对了吗?如果是这样,我应该将其替换为
如果不是(名称为None)
是否有效?我在谷歌上搜索得到了那个stmt

根据提供的上下文和代码,此代码段似乎正在使用库

从相关的,
conn.entries
应该是一个对象列表


这意味着
条目['cn']
应该返回一个。做一些源代码分析,这似乎只是一个带有可写标志的奇特列表
len(entry['cn'])>0
结束调用,它只返回该属性具有的值的数量。大于0只是确保cn实际上已设置。

print(type(entry['cn'])
应该会产生一些有用的信息。第二个问题取决于它是什么类型(请注意,强制将其转换为字符串可能具有破坏性)。第三个问题是:“是”。如果不了解更多关于
连接的
类,就不可能确定给定代码中的
条目['cn']
是什么类型
len()
将返回任何可数对象的长度。如果您正在处理ldap,
entry['cn']
很可能是指特定条目的通用名称,可能是字符串、列表(数组)、字典(关联数组)或某种类型的对象。usr2564301的建议是一个好主意,如果您能够以一种您确信不会影响生产环境的方式运行它;否则,发布更多代码。嗯,快速搜索一下,看起来这很可能是ldap3库。请稍等,我会给出一个答案。我一定会尝试运行
print
,以确定返回的确切类型<代码>连接
类用于访问ldap v3兼容目录。谢谢你的建议和建议。是,
连接
来自ldap3库。