我这里正在做一个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
你不能尝试打开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']
...