【发布时间】:2017-06-08 20:43:34
【问题描述】:
我正在编写一个程序来自动化我们的报告。我发现以下Script 将数据转换为pdf 并且运行良好。我稍微修改了一下,但并不过分。我能够单独生成所有报告,但似乎无法将它们全部打印到一个 pdf 中。
以下是从 db 调用格式化一个数据集以及如何调用脚本的示例。
def datafilter(tuna):
data = []
for name, number, count in tuna:
data.append({'name': name,
'number': number,
'count': count})
fields = (
('name', 'Location'),
('number', 'Number'),
('count', 'Call Count'),
)
doc1 = DataToPdf(fields, data, sort_by=('name', 'DESC'),
title='Main Number Called')
doc2 = DataToPdf(fields1, data1, sort_by=('name', 'DESC'),
title='Main Number Called')
doc = doc1, doc2
doc.export('Main_Calls.pdf')
我尝试过以各种方式操纵doc.export 调用,但无法使其正常工作。我怀疑我可能需要在某处创建一个循环。创建 doc 变量时,我尝试将我的数据作为元组填充到其中,但随后错误提示“导出方法不能采用元组”
至少有人能指出我正确的方向吗?我对此还是比较陌生。
编辑**回溯
/usr/bin/python3.5 /root/PycharmProjects/ReportApp/FML/apendhelp.py
Traceback (most recent call last):
File "/root/PycharmProjects/ReportApp/FML/apendhelp.py", line 53, in <module>
masterin()
File "/root/PycharmProjects/ReportApp/FML/apendhelp.py", line 50, in masterin
datafilter1(main_bk, top_bk)
File "/root/PycharmProjects/ReportApp/FML/apendhelp.py", line 38, in datafilter1
poop.export('mater.pdf')
AttributeError: 'tuple' object has no attribute 'export'
【问题讨论】:
-
您在错误中的
poop是tuple(这正是错误消息所说的),而不是应该是的DataToPdf对象。我相当确定您的小示例不会在该行产生相同的错误。请确保您发布的虚拟示例仍然导致相同的错误(这是“MCVE”中的“C”) -
你对,抱歉刚刚发现我会稍微编辑一下,但我已经将“doc”变量转换为元组
-
如果你“把它转换成一个元组”,你为什么期望它有一个
.export方法呢?您链接到的页面以及从其中获取代码的页面是否将其转换为元组?看到问题了吗? -
我链接的页面也定义了导出方法。不,我想我只理解了这个问题的一半。我有点菜鸟。我知道它不想要一个元组,我已经尝试了很多解决方法,但我还不够好:(
-
doc.export是DataToPdf类的方法。(doc1,doc2).export将是类tuple的方法,因为(doc1,doc2)是一个元组,不管里面是什么。元组没有export方法,就这么简单。您只能在DataToPdf对象上调用.export。如果您想将两件事放入同一个 pdf 文件中:嗯,您有一个问题需要解决,但您可能必须使用.export的单个调用,以及DataToPdf的对象.
标签: python python-3.x pdf reportlab