如何将列表列表压缩到 Python Rich table with headers and rows

How do I zip a list of lists into a Python Rich table with headers and rows

我正在尝试从不确定大小的 Google Sheet 中提取数据,并用它来构建 table 以显示在终端中,但我显然在做有事吗。我正在尝试 中描述的方法和语法,并得到等效于:

Animal Age Gender
Cat Dog Guinea Pig
7 0.5 5
Female Male Male

而不是期望的:

Animal Age Gender
Cat 7 Female
Dog 0.5 Male
Guinea Pig 5 Male

谁能澄清一下?如果这很愚蠢,我们深表歉意;正如你可能会说的那样,我对 Python 很陌生。

我的实际代码是:

from rich.console import Console
from rich.table import Table

records = test_records.get_all_values()
table = Table(title="Test Records")

for heading in records[0]:
    table.add_column(f"{heading}")

for row in zip(*records[1::1]):
    table.add_row(*row)

console = Console()
console.print(table)

就像那个问题中的 OP 一样,我有一个列表列表,存储为上面代码中引用的变量 records。我的列表包含我的 headers,但如您所见,我在上面的代码中分别处理了这些。也许这就是我出错的地方?

列表数据示例:

 records = [
     ['Date', 'Time', 'Username', 'Value (A)', 'Value (B)', 'Message'],
     ['07.04.22', '09:00', 'John', '3.00', '3.00', 'Some string data.'],
     ['08.04.22', '10:00', 'Jane', '3.00', '5.00', 'Some string data.']
 ]

我很确定不需要 zip 函数。删除它即可。

from rich.console import Console
from rich.table import Table

records = test_records.get_all_values()
table = Table(title="Test Records")

for heading in records[0]:
    table.add_column(f"{heading}")

for row in records[1::1]:
    table.add_row(*row)

console = Console()
console.print(table)

您的数据已采用水平格式,而非垂直格式。