2018年12月5日水曜日

ldap.cidict.cidict

何年前の話してるんだよと言われそうだが、python-ldap で search_s とかで返ってくるディクショナリが case-insensitive じゃないてことで、わざわざ key(属性名)を lower() して reduce() で別のディクショナリ作って in とかで存在確認したりしてたとかもう誰にも言えないけど自分への戒めでここにメモっておきたい。

ldap.cidict.cidict(result[0][1]) で case-insensitive なディクショナリで返してくれるっていや、ホント知らなかった。ググっても意外と少ない。例えば以下のように objectClass の C が大文字でも小文字でも cidict した後なら in で存在チェックできる。

>>> 'objectclass' in ret[0][1]
False
>>> 'objectClass' in ldap.cidict.cidict(ret[0][1])
True