ValueError: dict contains fields not in fieldnames

后端 未结 3 754
醉话见心
醉话见心 2020-12-03 04:57

Can someone help me with this.

I have my Select query

selectAttendance = \"\"\"SELECT * FROM table \"\"\"

And I want the content o

3条回答
  •  难免孤独
    2020-12-03 05:16

    As the error states: the dictionary that comes from the query contains more key than the field names you specified in the DictWriter constructor.

    One solution would be to filter that in advance, something like this:

    field_names = ["Bio_Id","Last_Name", ...]
    writer = csv.DictWriter(csvfile,fieldnames=field_names , delimiter = ';')
    writer.writeheader()
    data = {key: value for key, value in db.session.execute(selectAttendance).items()
            if key in field_names}
    writer.writerow(data)
    

    Another solution could be to construct the query using only those fields:

    query = 'SELECT %s FROM table' % ', '.join(field_names)
    

    However, Tim Pietzcker's answer is the best.

提交回复
热议问题