格式化嵌套字典中的输出
大家好,我试图使我的代码输出看起来像这个输出,没有任何尾随或领先的符号。有什么建议,我怎么能做到这一点?currentuser ={'root':{'uid': 0,'username': 'root' ,'shell': '/bin/bash'},
'daemon': {'uid': 1,'username': 'daemon' ,'shell': '/usr/sbin/nologin'},
'bin': {'uid': 2,'username': 'bin', 'shell':'/usr/sbin/nologin'},
'nsa': {'uid': 1000,'username': 'nsa', 'shell': '/bin/bash'}}
for key, value in currentuser.items():
print(f"\nKey: {key}")
print(f"Value: {value}")
currentuser ={'root':{'uid': 0,'username': 'root' ,'shell': '/bin/bash'},
'daemon': {'uid': 1,'username': 'daemon' ,'shell': '/usr/sbin/nologin'},
'bin': {'uid': 2,'username': 'bin', 'shell':'/usr/sbin/nologin'},
'nsa': {'uid': 1000,'username': 'nsa', 'shell': '/bin/bash'}}
for v in currentuser.values():
print(f'|{v["uid"]}|{v["username"]}|{v["shell"]}') 如果你想格式化,我更喜欢使用格式包
from tabulate import tabulate
currentuser ={'root':{'uid': 0,'username': 'root' ,'shell': '/bin/bash'},
'daemon': {'uid': 1,'username': 'daemon' ,'shell': '/usr/sbin/nologin'},
'bin': {'uid': 2,'username': 'bin', 'shell':'/usr/sbin/nologin'},
'nsa': {'uid': 1000,'username': 'nsa', 'shell': '/bin/bash'}}
columns = list(next(iter(currentuser.values())).keys())
print(tabulate(, headers=columns, tablefmt="presto")) 如果您不想导入,则必须将其编码。
使用 len(str) 查找每个列中每个元素的
长度。然后使用格式字符串以正确的长度打印该列中的每一个元素。
formats = ["<20", 10, 5]
data =
print("".join(f"| {d:{f}}" for d,f in zip(data,formats))) 您可以通过 f 字符串格式,因此对 Menator01 代码的调整很少,将提供所需的结果(数字对齐到右,文本向左排列,这是以表式显示这些数据类型的方式):
currentuser ={'root':{'uid': 0,'username': 'root' ,'shell': '/bin/bash'},
'daemon': {'uid': 1,'username': 'daemon' ,'shell': '/usr/sbin/nologin'},
'bin': {'uid': 2,'username': 'bin', 'shell':'/usr/sbin/nologin'},
'nsa': {'uid': 1000,'username': 'nsa', 'shell': '/bin/bash'}}
for value in currentuser.values():
print(f"{value['uid']:>8} {value['username']:<12} {value['shell']:<15}")
我个人喜欢这种类型的显示比分开更好。但是,如果您愿意,您可以很容易地将这些添加到 f 字符串中
页:
[1]