Không cần sử dụng trình tạo để lặp qua mydata . Chỉ cần nhập mydata trực tiếp:
cur.executemany(sql, mydata)
Bộ điều hợp cơ sở dữ liệu sẽ lặp qua mydata cho bạn và biểu thức trình tạo chỉ chèn thêm một vòng lặp không cần thiết.
Nếu bạn không nhận được bất kỳ thông báo lỗi nào nhưng cũng không có thay đổi nào, hãy kiểm tra như sau:
-
Đảm bảo rằng bạn cam kết giao dịch; chạy
con.commit()sau.executemany()gọi. -
Tripple-check
mydatađó không trống.
Bộ điều hợp cơ sở dữ liệu sẽ xử lý chính xác các giá trị float cho bạn; nếu một cột được đánh dấu là FLOAT NOT NULL và bạn chuyển giá trị float trong Python cho cột đó, Things Just Work. Đó là những gì tham số SQL dùng để xử lý việc trích dẫn các kiểu dữ liệu khác nhau một cách chính xác.