使用prettytable时add_row遇到问题

0 投票
1 回答
4003 浏览
提问于 2025-04-18 07:56

我正在尝试使用 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 个回答

4

根据文档的说明,add_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)

撰写回答