【Python和MySQL】读取csv文件内容,导入db文件和mysql数据库
在本篇博客中你可以学习到如何使用Python来读取CSV文件的内容,并将其导入到SQLite和MySQL数据库中。首先,我们需要安装sqlite3和pymysql这两个库,你可以使用以下命令进行安装:
pip install sqlite3 pymysql
以下为案例中csv文件下载链接:
链接:https://pan.baidu.com/s/1zPeCJ0YNwAjgsE5KpwSchA?pwd=vbrc
提取码:vbrc
完整代码
'''
读取csv文件中标题和链接等内容,分别导入sqlite和mysql数据库
'''
import sqlite3
import pymysql
# 链接数据库,新建表
conn = sqlite3.connect('people.db')
SQL = '''drop table if exists information'''
conn.execute(SQL)
SQL = '''create table information(id int not null, title varchar(100) not null, url varchar(100) not null, primary key('id'))'''
conn.execute(SQL)
conn.commit()
# 数据导入数据库
with open('title and url.csv', 'r', encoding='utf-8') as file:
contents = file.readlines()
for i, content in enumerate(contents[1:]):
title, url = content.split(',')
SQL = '''insert into information(id, title, url) values({}, '{}', '{}')'''.format(i, title.strip(), url.strip())
conn.execute(SQL)
conn.commit()
# 查询
SQL = '''select* from information where title like("人%")'''
result = list(conn.execute(SQL))
for i in result:
print(i)
# 首先你得在mysql里面创建这个Database才行,否则会报错
MySQL_conn = pymysql.connect(host='localhost', user='root', password='xuxin2002', database='information')
cur = MySQL_conn.cursor()
# 创建新表
cur.execute('drop table if exists information')
cur.execute('''create table information(id int not null primary key, title varchar(100) not null, url varchar(100) not null)''')
MySQL_conn.commit()
for i, content in enumerate(contents[1:]):
title, url = content.split(',')
try:
cur.execute('''insert into information(id, title, url) values({}, '{}', '{}')'''.format(i, title.strip(), url.strip()))
MySQL_conn.commit()
except:
conn.rollback()
cur.execute('''select* from information where title like('强%')''')
for i in cur.fetchall():
print(i)
cur.close()
MySQL_conn.close()