1.csv数据准备,a.csv,数据样式如下:
标题,类型,封面图片链接,书籍详情链接,简介,作者,字数
斗破苍穹,玄幻,http://example.com/a.jpg, http://www.example.net/book/1212/,我是简介, 我是作者,200万字
2.创建数据库表
CREATE TABLE novel (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255),
type VARCHAR(255),
cover_image_url VARCHAR(255),
book_details_url VARCHAR(255),
summary TEXT,
author VARCHAR(255),
word_count INT
);
3.直接运行,导入成功
import pandas as pd
import pymysql
# 读取CSV文件,clean_data/a.csv为csv文件的路径
df = pd.read_csv('clean_data/a.csv',encoding='gbk')
df = df.fillna('NULL')
# 连接到数据库,user为你数据库用户名称,password为你数据库的密码(我的密码是root),db为数据库表的名字
db = pymysql.connect(host='localhost', user='root', password='root', db='novel', charset='utf8', cursorclass=pymysql.cursors.DictCursor)
# 创建游标对象
cursor = db.cursor()
# 批量插入数据
for index, row in df.iterrows():
# 使用 REPLACE INTO 语句来避免重复插入数据
insert_query = f"REPLACE INTO novel_100 (title,type, cover_image_url, book_details_url, summary, author, word_count) VALUES ('{row['标题']}','{row['类型']}', '{row['封面图片链接']}', '{row['书籍详情链接']}', '{row['简介']}', '{row['作者']}', {row['字数']})"
cursor.execute(insert_query)
# 提交更改
db.commit()
# 关闭连接
db.close()