TL:DR版本:
尝试根据它的索引从dict(Edited out:tuple)中拉出一个列表。即{'a': [1,2], 'b':[3,4]}
...试图找出如何分别返回与a或b相关联的列表。
回答:
MyDict = {'a': [1,2], 'b':[3,4]}
print(MyDict['a'])
[1,2]
print(MyDict['b'])
[3,4]
包含上下文的实际版本:
python3-ldap返回我不熟悉的数据结构中LDAP帐户属性的值。它看起来像:
{'department':['DepartmentName'],'memberOf': [ 'CN =示例,OU的,= DC =域,DC = COM', CN =示例,OU =的,DC =域,DC = COM']}
我试图分别提取与department和memberOf相关的值。我认为这是一个嵌入式元组的元组,其中嵌入式元组的第二个元素是一个列表......但我不确定所以我无法弄清楚如何解析数据。
我创建了一个类,最终将用户放入。索引编码:
class Associates:
def __init__(self, index, name, department, membergrp):
self.i = index
self.n = name
self.d = department
self.m = membergrp
以下是执行搜索的代码:
result = c.search(searchDC, criteria, SEARCH_SCOPE_WHOLE_SUBTREE, attributes = ['department','memberOf'])
if result:
for r in c.response:
if (r['type'] == 'searchResEntry'):
a.append(Associates(len(a)+1,(r['dn']), r['attributes'],r['attributes']))
else:
pass
...其中'a'是一个空列表。
已经回答了:
无法更改查询,必须包含两个选项的r ['attributes'];但是,当在r中返回选择时,它们可以被解析为...
print ('Department is:', a[k].d['department'])
print ('Member groups are: ', a[k].m['memberOf'])
其中k是列表的索引。
答案 0 :(得分:1)
{'a': [1,2], 'b':[3,4]}
,LDAP数据结构{'department': ['DepartmentName'], 'memberOf': ['CN=example,OU=of,DC=domain,DC=com', 'CN=example,OU=of,DC=domain,DC=com']}
是键值决策。通过密钥检索值。
d = {'department': ['DepartmentName'],
'memberOf': ['CN=example,OU=of,DC=domain,DC=com',
'CN=example,OU=of,DC=domain,DC=com']}
dept = d['department'] # access by key
mem = d['memberOf']
print("dept = {}\nmem = {}".format(dept, mem))
如果还没有,我建议您阅读有关词典的教程和库手册部分。