繁体   English   中英

Python 3、格式打印 output 一个字典的几列(像一个格式化的表)

[英]Python 3, format print output of a dictionary in several column (like a formated table)

我想像表格一样格式化我的打印 output。 这是我的代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

result = b'[{"id":"865776","name":"US 2019","url":"www.abc.com"}, 
{"id":"646829496481089588","name":"MultiDomainDemo","url":"www.n149.mydomain.com 
/o/rw48vavc/manage/organization/overview"},{"id":"549236","name":"Developer 
Sandbox","url":"www.overview"}, 
{"id":"566327653141842188","name":"NetAssoc","url":"www.n6/organization"}]'
response_list = eval(result.decode())
print("id                   name")
print("_________________________")

for n in response_list:

    print (n['id'], " " ,n['name'])

结果是这样的:

id                   name
_________________________
865776   US 2019
646829496481089588   MultiDomainDemo
549236   Developer Sandbox
566327653141842188   NetAssoc

但我想要这样:

id                   name
_________________________
865776               US 2019
646829496481089588   MultiDomainDemo
549236               Developer Sandbox
566327653141842188   NetAssoc

您可以使用tabulate模块。 您还可以使用tablefmt参数更改表格样式。

from tabulate import tabulate
result = b'[{"id":"865776","name":"US 2019","url":"www.abc.com"}, {"id":"646829496481089588","name":"MultiDomainDemo","url":"www.n149.mydomain.com/o/rw48vavc/manage/organization/overview"},{"id":"549236","name":"Developer Sandbox","url":"www.overview"}, {"id":"566327653141842188","name":"NetAssoc","url":"www.n6/organization"}]'
response_list = eval(result.decode())

header = response_list[0].keys()
rows =  [x.values() for x in response_list]

print(tabulate(rows,  headers=header, tablefmt='grid'))

Output:

+--------------------+-------------------+---------------------------------------------------------------+
|                 id | name              | url                                                           |
+====================+===================+===============================================================+
|             865776 | US 2019           | www.abc.com                                                   |
+--------------------+-------------------+---------------------------------------------------------------+
| 646829496481089588 | MultiDomainDemo   | www.n149.mydomain.com/o/rw48vavc/manage/organization/overview |
+--------------------+-------------------+---------------------------------------------------------------+
|             549236 | Developer Sandbox | www.overview                                                  |
+--------------------+-------------------+---------------------------------------------------------------+
| 566327653141842188 | NetAssoc          | www.n6/organization                                           |
+--------------------+-------------------+---------------------------------------------------------------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM