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

如何将LDAP查询结果转换为指定结构的Pandas DataFrame

Pandas处理ldapsearch返回结果的实现方法

Pandas没有专门针对ldapsearch返回结构的原生处理方法,但可以通过简单的逻辑转换得到你需要的结构化DataFrame,两种常用实现方案如下:

方案1:预处理原始LDAP查询结果(性能最优)

拿到search_s返回的结果后,先对每条数据做结构转换,再生成DataFrame即可:

import pandas as pd

# 你的原有LDAP查询代码不变,得到ldapsearch结果后执行以下逻辑
processed_data = []
for dn, attr_dict in ldapsearch:
    row = {"dn": dn}
    # 遍历属性字典,取出每个属性列表的第一个元素(LDAP属性默认是多值返回列表)
    for attr_name, attr_value in attr_dict.items():
        # 兼容属性为空的场景,空值设为None
        row[attr_name] = attr_value[0] if attr_value else None
    processed_data.append(row)

# 直接生成目标格式的DataFrame
df = pd.DataFrame(processed_data)

方案2:基于已生成的0、1列DataFrame转换

如果已经通过pd.DataFrame(ldapData)生成了默认列名的DataFrame,可以直接展开属性列:

# 先给现有列重命名
dfLdap.columns = ["dn", "attr_dict"]
# 展开属性字典列,每个属性取列表第一个元素后和dn列合并
df = pd.concat([
    dfLdap["dn"],
    pd.json_normalize(dfLdap["attr_dict"]).applymap(lambda x: x[0] if x else None)
], axis=1)

注意事项

如果业务中存在多值的LDAP属性,可以调整取值逻辑,比如用','.join(attr_value)把多值拼接为字符串存储。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 19:45:03