我有一個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