Python ldap3库:使用多个值修改属性

Python ldap3库:使用多个值修改属性,python,python-3.x,ldap,Python,Python 3.x,Ldap,尝试修改具有多个值的ldap属性时,似乎无法理解语法 我正在使用python3的库 给出了一个修改条目的两个属性的示例,但每个属性只有一个值 该示例中的字典是我遇到问题的地方: c.modify('cn=user1,ou=users,o=company', {'givenName': [(MODIFY_REPLACE, [<what do I put here>])]}) 我已尝试将newmemberlist作为列表传递 'memberuid': [(MODIFY_REP

尝试修改具有多个值的ldap属性时,似乎无法理解语法

我正在使用python3的库

给出了一个修改条目的两个属性的示例,但每个属性只有一个值

该示例中的字典是我遇到问题的地方:

c.modify('cn=user1,ou=users,o=company',
     {'givenName': [(MODIFY_REPLACE, [<what do I put here>])]})
我已尝试将newmemberlist作为列表传递

'memberuid': [(MODIFY_REPLACE, ['clark.kent', 'the.hulk','bat.man'])] 
这给了我
TypeError:'str'对象不能解释为整数

或者一个长字符串的各种组合(注释行),用空格、逗号、分号和我能想到的任何东西分隔

'memberuid': [(MODIFY_REPLACE, 'clark.kent, the.hulk, bat.man')]
替换的是哪个,但我有一个memberuid看起来像这样
'clark.kent,the.hulk,bat.man'

您需要确保您正在传递要修改的ldapobject的DN

c.modify(FULL_DN_OF_OBJECT, {'memberuid': [(MODIFY_REPLACE, ['clark.kent', 'the.hulk','bat.man'])]})
那么你应该可以直接通过新成员列表而不是['clark.kent','the.hulk','bat.man']

c.modify(FULL_DN_OF_OBJECT, {'memberuid': [(MODIFY_REPLACE, newmemberlist )]})

您需要确保正在传入要修改的ldapobject的DN

c.modify(FULL_DN_OF_OBJECT, {'memberuid': [(MODIFY_REPLACE, ['clark.kent', 'the.hulk','bat.man'])]})
那么你应该可以直接通过新成员列表而不是['clark.kent','the.hulk','bat.man']

c.modify(FULL_DN_OF_OBJECT, {'memberuid': [(MODIFY_REPLACE, newmemberlist )]})

我相信MODIFY_REPLACE命令不会接受多个值,因为它无法理解哪些值将被替换为新值。相反,您应该先尝试修改删除旧值,然后再修改添加新值。

我相信MODIFY\u REPLACE命令不会接受多个值,因为它无法理解哪些值将被替换为新值。相反,您应该先尝试修改删除旧值,然后再修改添加新值。

我的列表示例遗漏了DN(输入错误)。我已经相应地编辑了我的问题。当有一个值时,我在进行修改替换时没有遇到问题-但是传递一个列表以获取多个值(如您所说)会出现我显示的错误。我的列表示例遗漏了DN(输入错误)。我已经相应地编辑了我的问题。当有一个值时,我在执行修改替换时没有遇到问题-但是传递一个列表以获取多个值(如您所说)会出现我显示的错误。这是多值属性(如组成员资格和userCertificate字段)的情况这是多值属性(如组成员资格和userCertificate字段)的情况