Can someone help me with this.
I have my Select query
selectAttendance = """SELECT * FROM table """
And I want the content of my select query and include a header when I download the csv file, So I did this query:
with open(os.path.join(current_app.config['UPLOAD_FOLDER'], 'csv.csv'), 'wb') as csvfile: writer = csv.DictWriter(csvfile,fieldnames = ["Bio_Id","Last_Name","First_Name","late","undertime","total_minutes", "total_ot", "total_nsd", "total_absences"], delimiter = ';') writer.writeheader() writer.writerow(db.session.execute(selectAttendance)) db.session.commit()
but it gives me this error
**ValueError: dict contains fields not in fieldnames**
I want to have like this output in my downloaded csv file:
Bio_Id Last_Name First_Name late undertime total_minutes total_ot total_nsd total_absences 1 Joe Spark 1 1 2 1 1 1
Thank you in advance.
As the error message clearly states, your dictionary contains keys that don't have a corresponding entry in your fieldnames
parameter. Assuming that these are just extra fields, you can ignore them by using the extrasaction
parameter during construction of your DictWriter
object:
writer = csv.DictWriter(csvfile, fieldnames=["Bio_Id","Last_Name","First_Name","late","undertime","total_minutes", "total_ot", "total_nsd", "total_absences"], extrasaction='ignore', delimiter = ';')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With