我正在尝试使用LDAPObject.search_s()搜索过滤器.
当我有一个没有()s 的参数时,这完全正常,但是当()过滤器中存在时,这会失败.
例如,当我寻找一个组时
"(name=(Test Group))",一个ldap.FILTER_ERROR将被提出,但当我"(name=Test Group)"用作过滤器时,将没有问题.
如何搜索有parens的组?
参考:
http://www.python-ldap.org/doc/html/ldap.html?highlight=initialize#ldap-objects
您应该使用ldap.filter模块.它已包含需要转义的所有规则.
>>> import ldap.filter
>>> ldap.filter.filter_format('(cn=%s)', ['(Test Group)',])
'(cn=\\28Test Group\\29)'
Run Code Online (Sandbox Code Playgroud)