我需要使用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. Zerbe
编辑:
这是我使用(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"
}发布于 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会给你你想要的字典。
https://stackoverflow.com/questions/57592853
复制相似问题