首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理json或list中的ldap3条目以进行进一步的数据处理?

如何处理json或list中的ldap3条目以进行进一步的数据处理?
EN

Stack Overflow用户
提问于 2019-08-21 21:30:50
回答 2查看 3.6K关注 0票数 2

我需要使用LDAP从服务器获取数据。我使用的是ldap3,并获得了我需要的所有属性和响应,但它们都停留在ldap.abstract.entry.entry类中。我尝试了几种方法来将数据转换为json或列表形式,但它从来没有像我预期的那样工作。

例如,我尝试过:

代码语言:javascript
复制
entry = conn.entries
current_data = (entry.entry_to_json())
print(type(current_data))
print(len(current_data))
>>> <class 'str'>
>>> 480

然而,这导致我的所有数据都是长度为480或更长的单个字符串。我试着使用它,但这被证明是非常困难的。因此,我尝试使用以下方法将字符串转换为字典:

代码语言:javascript
复制
current_data = (entry[0].entry_to_json())
current_data = ast.literal_eval(current_data)
print(type(current_data))
print(len(current_data))
>>> <class 'dict'>
>>> 2

但是,现在我不能单独访问所有不同的属性。我的目标是将从LDAP查询中获得的所有数据写入CSV,以便其他应用程序可以使用它。但目前我被卡住了,因为我无法将数据转换为JSON或CSV格式。

如何从conn.entries获取和处理数据,以便可以将每个属性写入CSV中的单独列?

谨致问候,

C. Zerbe

编辑:

这是我使用(entry.entry_to_json())时得到的一个示例

代码语言:javascript
复制
{
    "attributes": {
        "dcxLDOUniqueCN": [
            "XXXX"
        ],
        "dcxPostalAddress": [
            "XXX"
        ],
        "dcxSupervisor": [
            "XXX"
        ],
        "mail": [
            "XXX"
        ],
        "mobile": [],
        "uid": [
            "XXX"
        ]
    },
    "dn": "XXX"
}
{
    "attributes": {
        "dcxLDOUniqueCN": [],
        "dcxPostalAddress": [
            "XXX"
        ],
        "dcxSupervisor": [
            "XXX"
        ],
        "mail": [],
        "mobile": [],
        "uid": [
            "XXX"
        ]
    },
    "dn": "XXX"
}
EN

Stack Overflow用户

发布于 2020-10-30 21:20:52

我知道很晚了,但以防其他人在找这个...

来自https://ldap3.readthedocs.io/en/latest/searches.html#entries

属性存储在内部字典中,访问时不区分大小写。您甚至可以使用entry_raw_attribute(attribute_name)访问原始属性来获取属性原始值,或者使用属性entry_raw_attributes来获取整个原始属性字典。

所以entry.entry_raw_attributes会给你你想要的字典。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57592853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档