无法生成 table

Unable to generate the table

我有一个像这样的 numpy 数组:

[['aaq', '56.18%', 'CC']
 ['jasl', '0.00%', 'JO']
 ['arw', '1.74%', 'AS']
 ['vcf', '1.07%', 'DA']
 ['hsw', '0.00%', 'LO']
 ['wey', '41.01%', 'IS']
 ['fol', '0.00%', 'MO']
 ['aaw', '0.00%', 'AP'],
 ['sta', '0.00%', 'TT']]

我想用作 table 的数据。 为此,我尝试过的是:

doc = SimpleDocTemplate("sectors.pdf",pagesize=A4)
elements = []

data=    [['aaq', '56.18%', 'CC']
 ['jasl', '0.00%', 'JO']
 ['arw', '1.74%', 'AS']
 ['vcf', '1.07%', 'DA']
 ['hsw', '0.00%', 'LO']
 ['wey', '41.01%', 'IS']
 ['fol', '0.00%', 'MO']
 ['aaw', '0.00%', 'AP'],
 ['sta', '0.00%', 'TT']]

t=Table(data)    

elements.append(t)
doc.build(elements)

当我 运行 代码时,我收到以下错误:

Traceback (most recent call last):
  File "sector_alloc.py", line 236, in <module>
    t=Table(data)
  File "reportlab/platypus/tables.py", line 212, in __init__
raise ValueError("%s invalid data type" % self.identity())
ValueError: <Table@0x7F61F6D2ACC0 unknown rows x unknown cols>...     
invalid data type

这可能与将 np.array 的值转换为 Paragraphs 有关? (可能是因为他们在数据中是str) 在那种情况下,我所做的是分别获取 np.array 的每一列 (list) 并执行:

for valor in list:
  list.append(Paragraph('<b>'+valor+'</b>',styleSheet["BodyText"]))

然后尝试再次连接 lists 以再次形成 numpy 数组,但也没有成功..

任何人都可以帮我将 numpy 数组指定为我的 table 的数据吗?

您的数据列表中的大多数列表后面似乎缺少逗号。列表列表应如下所示:

data = [
    ['aaq', '56.18%', 'CC'],
    ['jasl', '0.00%', 'JO'],
    ['arw', '1.74%', 'AS'],
    ['vcf', '1.07%', 'DA'],
    ['hsw', '0.00%', 'LO'],
    ['wey', '41.01%', 'IS'],
    ['fol', '0.00%', 'MO'],
    ['aaw', '0.00%', 'AP'],
    ['sta', '0.00%', 'TT'],
]

这是我测试过的完整示例:

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table

doc = SimpleDocTemplate("example.pdf", pagesize=letter)
data = [
    ['aaq', '56.18%', 'CC'],
    ['jasl', '0.00%', 'JO'],
    ['arw', '1.74%', 'AS'],
    ['vcf', '1.07%', 'DA'],
    ['hsw', '0.00%', 'LO'],
    ['wey', '41.01%', 'IS'],
    ['fol', '0.00%', 'MO'],
    ['aaw', '0.00%', 'AP'],
    ['sta', '0.00%', 'TT'],
]
doc.build([Table(data)])