You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python ldap3问题:如何将LDAP返回的mail转为字符串存入列表/字典

解决LDAP查询结果存入列表格式异常问题
  • 问题根源:你拿到的ldap_conn.entries[0].mail并非原生字符串,而是LDAP库返回的属性对象。直接print(test)时,对象的内置字符串方法会输出邮箱内容,但把对象存入列表后,打印列表会显示对象的完整标识(带mail:前缀)。

  • 两种解决方式:

    • 方式1:提取对象的实际值(多数LDAP库如python-ldap3会提供.value属性):
      test = ldap_conn.entries[0].mail.value
      
    • 方式2:强制转换为字符串:
      test = str(ldap_conn.entries[0].mail)
      
  • 修改后的完整代码:

    basedn = config['ldap']['basedn']
    attribs = ['mail']
    data = []
    
    for account in logon_name:
        sfilter = f'(cn={account})'
        ldap_conn.search(
            basedn,
            sfilter,
            attributes=attribs
        )
        if ldap_conn.entries:
            test = ldap_conn.entries[0].mail.value
            data.append([account, test])
            print(test)
            print(data)
    
  • 效果验证:修改后存入列表的test是纯邮箱字符串,列表输出会变为[['xxxxx', 'aaaaaaa.aaaaaaaaa@aaaaa.aaaa']],符合预期格式。

内容的提问来源于stack exchange,提问作者user15106307

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:22:08