无法将SQL数据读取到ReportLab行中。

问题描述 投票:0回答:1

我这里正在做一个reportlab项目,从一个SQlite3表读取数据。它无法读取并将其转换为系统读取和发布的正确格式。起初我从csv文件中调用了数据,成功了。我值得注意的是,要以正确的格式来呈现,以达到敷衍的目的。

str_rankings = (self.choose_class_combo.currentText() + ' ' + self.choose_term_combo.currentText() + ' ' + self.choose_year_combo.currentText() + ' ' + " STREAM RANKINGS.pdf")
pdf2=SimpleDocTemplate(str_rankings)
frame1 = Frame(30,20,900,600)
land = PageTemplate(id='l',pagesize=[950,650],frames=[frame1])
heading = self.choose_class_combo.currentText()+' '+self.choose_term_combo.currentText()+' '+self.choose_year_combo.currentText()+' OVERALL PERFOMANCE AND GRADE BREAKDOWN'
descrip = ParagraphStyle('description',fontName='Courier-Bold',fontSize=18,leading=30, alignment=TA_CENTER)
head_text = Paragraph(heading,descrip)
pdf.addPageTemplates([land])
pdf2.addPageTemplates(PageTemplate(id='l',pagesize=[950,650],frames=[frame1]))
flow_obj=[]
flow_obj.append(head_text)
#creating the connection
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
str_summary = pd.read_sql("select * from '" + str(overall_summary) + "'", conn)
with open(str_summary) as f1:
    csvdata=csv.reader(f1,delimiter=",")
    tdata=[]
    for data in csvdata:
        rowdata=[]
        BLANK=data[0]
        A1 =data[1]
        A2=data[2]
        B3=data[3]
        B4=data[4]
        B5=data[5]
        C6=data[6]
        C7=data[7]

它抛出了这个错误

Traceback (most recent call last):
  File "D:\Python\PyQt5\Backup\Result Management System(RMS)\REMARE 2.py", line 2084, in get_results
    with open(str_summary) as f1:
TypeError: expected str, bytes or os.PathLike object, not DataFrame
python sqlite reportlab
1个回答
1
投票

你不能尝试打开Pandas Dataframe,也不能尝试使用Pandas Dataframe读取 csv.reader(). 如果你想将结果转存到CSV文件,请使用 str_summary.to_csv() (to_csv文件). 否则,你可以在DataFrame中使用 iterrows()

举例如下:

for index, row in str_summary.iterrows():
    BLANK = row['column_name']
    A1 = row['another_column_name']
    ...
© www.soinside.com 2019 - 2024. All rights reserved.