Csv sang sql chèn python

Để thực hiện công việc này, trước tiên hãy mở XAMPP để khởi động MySQL. Sau đó đã đến liên kết này. https. // nhà phát triển. mysql. com/downloads/connector/python/ & tải xuống Trình kết nối MySQL/Python dựa trên hệ điều hành & phiên bản python của bạn. Bây giờ cài đặt nó. Đó là nó

Chạy thử nghiệm

trong đó. py trong tệp này, chúng tôi đang tạo kết nối với cơ sở dữ liệu MySQL, chúng tôi cũng đang tạo cơ sở dữ liệu trong tên trang này "movieRatings". Trước khi chạy trang này, hãy chắc chắn rằng bạn phải thay đổi kết nối dựa trên người dùng, mật khẩu và máy chủ MySQL của bạn

connection = mysql.connector.connect(user='root', password='', host='localhost')

Cơ sở dữ liệu sẽ được tạo trong mã dưới đây

mycursor.execute("CREATE DATABASE movieRatings  DEFAULT CHARACTER SET 'utf8'")

table_create. py trong tệp python này, chúng tôi đang tạo bảng trên cơ sở dữ liệu. Chúng tôi đang lưu các truy vấn MySQL của mình vào một từ điển có tên "TABLES={}"

TABLES = {}
TABLES['movies'] = (
    "CREATE TABLE `movies` ("
    "  `id` int(50) NOT NULL AUTO_INCREMENT,"
    "  `title` varchar(200) NOT NULL,"
    "  `geners` varchar(200) NOT NULL,"
    "  PRIMARY KEY (`id`)"
    ") ENGINE=InnoDB")

TABLES['links'] = (
    "CREATE TABLE `links` ("
    "  `id` int(50) NOT NULL,"
    "  `imdbid` int(50) NOT NULL,"
    "  `tmdbid` int(50) NOT NULL,"
    "  `movie_id` int(50) NOT NULL,"
    "  PRIMARY KEY (`id`)"
    ") ENGINE=InnoDB")

TABLES['ratings'] = (
    "CREATE TABLE `ratings` ("
    "  `user_id` int(50) NOT NULL,"
    "  `movie_id` int(50) NOT NULL,"
    "  `ratings` float(50) NOT NULL,"
    "  `timestapm`  varchar(250) NOT NULL"
    ") ENGINE=InnoDB")

TABLES['tags'] = (
    "CREATE TABLE `tags` ("
    "  `user_id` int(50) NOT NULL,"
    "  `movie_id` int(50) NOT NULL,"
    "  `tags` varchar(250) NOT NULL,"
    "  `timestapm` varchar(250) NOT NULL"
    ") ENGINE=InnoDB")

Bằng cách sử dụng vòng lặp for, chúng tôi đang thực hiện các truy vấn vào cơ sở dữ liệu để tạo bảng

for name, ddl in TABLES.items():
    try:
        print("Creating table {}: ".format(name), end='')
        mycursor.execute(ddl)
    except mysql.connector.Error as err:
        if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
            print("already exists.")
        else:
            print(err.msg)
    else:
        print("OK")

chèn_phim. py trong tệp python này, chúng tôi đang tạo 4 hàm để chèn dữ liệu trên 4 bảng khác nhau từ 4 tệp CSV khác nhau. Khi bắt đầu chức năng, chúng tôi đang mở tệp CSV

with open('./ml-latest-small/movies.csv', newline='',  encoding="utf8") as csvfile:
        spamreader = csv.reader(csvfile)

Sau đó, sử dụng forloop, chúng tôi đọc dữ liệu từ tệp csv và sau đó chèn dữ liệu bằng truy vấn vào cơ sở dữ liệu

Dòng đầu tiên của tệp CSV là tiêu đề của bảng. Bạn có thể tùy chọn thêm ký hiệu INSERT5 và tên loại sau mỗi tên trường dưới dạng chữ ký loại để đánh dấu loại dữ liệu. Chữ ký loại có sẵn là

  • INSERT6. Dữ liệu sẽ được bao quanh bởi INSERT7 để thể hiện kiểu chuỗi. Mục trống sẽ được thay thế bằng INSERT8
  • INSERT9. Tương tự với INSERT6 nhưng mục trống sẽ được thay bằng
    mycursor.execute("CREATE DATABASE movieRatings  DEFAULT CHARACTER SET 'utf8'")
    11
  • Các loại chữ ký khác như
    mycursor.execute("CREATE DATABASE movieRatings  DEFAULT CHARACTER SET 'utf8'")
    12,
    mycursor.execute("CREATE DATABASE movieRatings  DEFAULT CHARACTER SET 'utf8'")
    13, v.v. Dữ liệu sẽ trực tiếp như cũ ngoại trừ mục trống sẽ được thay thế bằng ________ 111

Nếu không có chữ ký loại cho một trường, nó sẽ là INSERT6. Xem định dạng của tệp

mycursor.execute("CREATE DATABASE movieRatings  DEFAULT CHARACTER SET 'utf8'")
16 và kết quả bên dưới