LDAP搜索属性

时间:2015-05-21 18:05:37

标签: python ldap

我在我的LDAP基础上搜索了:

HDC hdcDesk = GetDC(0);

HDC hdcMem = CreateCompatibleDC(hdcDesk);
HBITMAP hbmMem = CreateCompatibleBitmap(hdcDesk, 1920, 1080);
SelectObject(hdcMem, hbmMem);

BitBlt(hdcMem, 0, 0, 1920, 1080, hdcDesk, 0, 0, SRCCOPY | CAPTUREBLT);

// Now save the bitmap...

如果CPF字段已填满,那该工作正常,但如果它没有填写则会给我一个错误:

user_account = server.search_s(
    'ou=usuarios,ou=xxx,o=system xxx',
    ldap.SCOPE_ONELEVEL,
    'uid=' + login,
    ['uid', 'mail', 'objectClass', 'CPF'])[0]
  if user_account[1]['CPF'] is not None:
    plpy.debug("It has CPF")

我试过这样做:

ERROR:  KeyError: 'CPF'

但它给了我同样的错误。

1 个答案:

答案 0 :(得分:1)

您可以使用get()从字典中获取值,如果不存在,则返回默认值。如果您未提供默认值,则会返回None

cpf = user_account[1].get("CPF")
if cpf:
  plpy.debug("It has CPF")

另一种方法是使用in运算符。它可以告诉您字典中是否存在某个键。

if "CPF" in user_account[1]:
  plpy.debug("It has CPF")

这与做:

相同
if "CPF" in user_account[1].keys():
  plpy.debug("It has CPF")