麻烦使用add_row与prettytable

时间:2014-05-29 12:18:54

标签: python pretty-print

我正在尝试使用prettytable库格式化数组。这是我的代码:

from prettytable import PrettyTable
arrayHR = [1,2,3,4,5,6,7,8,9,10]
print ("arrayHR:", arrayHR)
x = PrettyTable(["Heart Rate"])
for row in arrayHR:
    x.add_row(row)

这会导致以下错误:

arrayHR: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    Traceback (most recent call last):
      File "C:\Users\aag\Documents\Python\test.py", line 7, in <module>
    x.add_row(row)
      File "C:\Python33\lib\site-packages\prettytable.py", line 817, in add_row
    if self._field_names and len(row) != len(self._field_names):
TypeError: object of type 'int' has no len()

我确信我正在做一些难以言喻的愚蠢行为,但我不知道那是什么。善良的灵魂可能会朝着正确的方向前进吗?

1 个答案:

答案 0 :(得分:2)

根据the documentationadd_row期待list而不是int 作为参数。假设您希望arrayHR中的值成为每行中的第一个值,您可以这样做:

x = PrettyTable(["Heart Rate"])
for row in arrayHR:
    x.add_row([row])

或采用add_column示例,也来自文档:

x = PrettyTable()
x.add_column("Heart Rate", arrayHR)