个人名单
当你定义
x
作为:
x = [('CN=b12345,OU=Accounts,DC=mydomain,DC=com',
{'Fname': ['Jose, Movi'],
'location': [b'London'],
'mail': [b'jose.movi@google.com'],
'title': [b'Sales -Exec -Retail']})]
你可以在一张纸上打印
key
value
方式:
for k, v in x[0][1].items():
try:
print(f"{k.title()}: {', '.join(a.decode('utf-8') for a in v)}")
except (UnicodeEncodeError, AttributeError):
# If you try to decode a regular string
print(f"{k.title()}: {', '.join(v)}")
输出
Fname: Jose, Movi
Location: London
Mail: jose.movi@google.com
Title: Sales -Exec -Retail
或者为每个
钥匙
:
def printer(k, v):
try:
print(f"{k.title()}: {', '.join(a.decode('utf-8') for a in v)}")
except (UnicodeEncodeError, AttributeError):
# If you try to decode a regular string
print(f"{k.title()}: {', '.join(v)}")
for k, v in x[0][1].items():
if k == "Fname":
printer("DisplayName", v)
elif k == "mail":
printer("Email", v)
elif k == "title":
printer("Designation", v)
else:
printer(k, v)
产出:
Displayname: Jose, Movi
Location: London
Email: jose.movi@google.com
Designation: Sales -Exec -Retail
如果你正在使用
>= Python3.10
你可以用
match
自定义标题的声明:
for k, v in x[0][1].items():
match k:
case "Fname":
printer("DisplayName", v)
case "mail":
printer("Email", v)
case "title":
printer("Designation", v)
case _:
# Default case
printer(k, v)
所有列表
当你定义
十、
作为:
x = [[('CN=b12345,OU=Accounts,DC=mydomain,DC=com',
{'Fname': ['Jose, Movi'],
'location': [b'London'],
'mail': [b'jose.movi@google.com'],
'title': [b'Sales -Exec -Retail']})],
[('CN=h12345,OU=Accounts,DC=mydomain,DC=com',
{'Fname': ['Lorraine, Moses'],
'location': [b'Boston'],
'mail': [b'Lorraine.Moses@google.com'],
'title': [b'Sales -ExecIII -Retail']})],
[('CN=o12345,OU=Accounts,DC=mydomain,DC=com',
{'Fname': ['Andy, Cameron'],
'location': [b'NewYork'],
'mail': [b'Andy.Cameron@google.com'],
'title': [b'Customer Support II - Fixed']})]]
你可以编辑你的例子,使之成为另一个例子
for
循环
i
:
for i in x:
for k, v in i[0][1].items():
# Rest of method goes here
如果严格使用单元素列表,则可以更改
', '.join(a.decode('utf-8') for a in v)
到
v.decode('utf-8')
和
', '.join(v)
到
v