Python ldap返回空列表

Python ldap返回空列表,python,ldap,Python,Ldap,我用ldapsearch测试了我的ldap查询,然后将其重写到python的ldap模块中。同样的查询可以在ldapsearch中正常工作,但在python中返回一个空数组 ldapsearch -H [hostname] -LLL -b [base] -D [user] -w [password] -x "city=Bratislava" 在python中: ldap_obj = ldap.initialize(ldap_config.LDAP_SERVER) ldap_obj.simple

我用
ldapsearch
测试了我的ldap查询,然后将其重写到python的ldap模块中。同样的查询可以在
ldapsearch
中正常工作,但在python中返回一个空数组

ldapsearch -H [hostname] -LLL -b [base] -D [user] -w [password] -x "city=Bratislava"
在python中:

ldap_obj = ldap.initialize(ldap_config.LDAP_SERVER)
ldap_obj.simple_bind(ldap_config.LDAP_USER, ldap_config.LDAP_PASSWORD)
ldap_results_obj = ldap_obj.search(
    ldap_config.LDAP_BASE_DN,
    ldap.SCOPE_SUBTREE,
    'city=Bratislava',
)
results = ldap_obj.result(ldap_results_obj)
print results

我尝试使用另一个过滤器,即
uid=bmakan
,这个过滤器在
ldapsearch
和python的ldap中都有效。当我使用返回多个ldap实体的筛选器时,它只返回一个空列表。

我不知道为什么,但使用了
LDAPObject.simple\u bind\u s
而不是
LDAPObject.simple\u bind
修复了我面临的问题。关于这两个函数的区别,文档中的描述相当模糊,只是后者返回一个整数()

此更改还修复了我面临的另一个问题-使用
LDAPObject.simple\u bind
LDAPObject.search
attrlist
参数无法正常工作-它只返回了第一个属性


如果有人能提供更多的信息,我很乐意听听。有异步和同步方法可用。您可能希望使用以
\u s
结尾的同步方法

另见: