Python Tabulate没有从字典中生成正确的表

时间:2017-02-14 14:19:52

标签: python dictionary

我在Python 3.6中使用Tabulate version 0.7.7

到目前为止,这是我使用字典进行简单测试的代码。

from tabulate import tabulate

d = {"Dave":"13", "Bob":"15"}

headers = ["Name", "Age"]
print(tabulate(d, headers = headers))

我想要的结果是

Name    Age
------  -----
Dave    13
Bob     15

但我得到的是

Name    Age
------  -----
1       1
3       5

有人能帮助我吗?

一个问题 - 我可以使用制表来解决这个问题,还是应该使用不同的python包?

2 个答案:

答案 0 :(得分:3)

您可以访问dict的items属性。像这样。它会给你你想要的结果。

>>> print(tabulate(d.items(), headers = headers))
Name      Age
------  -----
Bob        15
Dave       13

答案 1 :(得分:1)

您需要列出元组列表。使用字典执行此操作的一种方法是使用解压缩项目,如下所示:

<entry>
<record>558</record>
  <time>2017/02/14 14:10:08.617</time>
  <type>Error</type>
  <source>VisualStudio</source>
  <description>Loading UI library</description>
  <guid>{8C0C630B-37F1-11E3-8259-6C3BE516EAD0}</guid>
  <hr>800a006f</hr>
</entry>

返回

from tabulate import tabulate

d = {"Dave":"13", "Bob":"15"}

headers = ["Name", "Age"]
print(tabulate(d.items(), headers = headers))

或者,您可以使用不同的列表并将它们压缩在一起。 Tabulate正在寻找看起来像这样的输入:

Name      Age
------  -----
Dave       13
Bob        15

返回:

names = ['Dave','Bob']
ages = ['13','15']

d = zip(names,ages)

print(d)