如何处理ldap3条目到json或列表中以进行进一步的数据处理?

问题描述 投票:0回答:1

我需要使用LDAP从服务器获取数据。我正在使用ldap3,并且正在获取我需要的所有属性和响应,但它们都卡在了ldap.abstract.entry.entry类中。我尝试了几种方法来将数据转换成json或列表形式,但它从未按我预期的方式工作。

例如,我尝试过:

entry = conn.entries
current_data = (entry.entry_to_json())
print(type(current_data))
print(len(current_data))
>>> <class 'str'>
>>> 480

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

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。泽尔贝

编辑:

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

{
    "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"
}
python dictionary ldap3
1个回答
0
投票

[我需要做一些类似于使用ldap3库的事情,并从Flask API返回JSON形式的响应。我在自己的搜索中找到了此条目,因此希望对其他人有所帮助。

您已经发现,entry_to_json()方法将ldap3.abstract.entry.Entry对象中的详细信息转换为JSON字符串。可以与ldap3.abstract.entry.Entry内置库结合使用json将其转换为Python字典。

在IDLE中使用您的示例,为简洁起见,跳过json组件:

json.loads()
© www.soinside.com 2019 - 2024. All rights reserved.