在python中,从Connection对象的entries属性中提取的单个元素代表什么数据类型?
我一点也不精通python。我被要求查看其他人的python脚本,该脚本使用在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
搜索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库。