Bạn phải sử dụng các dấu ngoặc kép trong truy vấn.
Tôi đã nhận được cùng một loại lỗi từ điều này
cur.execute('insert into my_table(id, name, horse_type, horse_code, horse_name) values(default, %s, 3, %s, "Mary Wonder")', [e[0], e[1]])
nó được sản xuất
Traceback (most recent call last):
File "process_horse.py", line 11, in <module>
[e[0], e[1]])
psycopg2.ProgrammingError: column "Mary Wonder" does not exist
LINE 2: ', "Mary Wonder")
^
Rõ ràng đó là dữ liệu chứ không phải tên cột như bạn đã nói.
Khi tôi đổi thành
cur.execute("insert into my_table(id, name, horse_type, horse_code, horse_name) values(default, %s, 3, %s, 'Mary Wonder')",[e[0], e[1]])
nó hoạt động không có lỗi.