我有一个PHP背景,是相当新的python,我创建了一个辅助类,用于返回一个ldap服务器的结果。Python最好的方式来创建新的字典循环遍历包含列表的字典列表
从蟒蛇LDAP库标准的结果:ldap.search_s()里面里面,即列表元组的使用词典列表:
[('uid', {'cn': ['cnvalue']}), ('uid2', {'cn': ['cnvalue2']})]
我想这个转换成字典或一个简单的列表在PHP中讲一组关联数组。
对于我的生活,我无法弄清楚如何做到这一点。
这是多么我已经尝试过:
output = []
for i, result in enumerate(results):
d = {
'firstname': result[1].['givenName'][1],
'phone': result[1].['telephoneNumber'][1]
}
output.append(d)
return output
如果telephoneNumber不存在LDAP中的条目Python库不填充该键,所以有些时候我也陷入了无效键例外,因此我修改如下。
output = []
for i, result in enumerate(results):
d = {
'firstname': result[1].get('givenName', '')[1],
'phone': result[1].get('telephoneNumber' ,'')[1]
}
output.append(d)
return output
即便如此,如果telephoneNumber不存在,那么同样没有列表条目[1],所以现在我遇到了“超出范围”的错误。
帮助。
谢谢大家。
请注意,列表从'0'开始,而不是从'1'开始 – alko
givenName核心如何响应'cn'和'cnvalue'? – alko
这将是一个好主意,以您将使用的格式发布一些名称和电话号码的数据。目前还不清楚你的内含字典的元组列表是如何与你的问题相关的。 – mrKelley