"""
Auther:少校
Time:2025/4/18 15:17
越努力,越幸运
"""
import pymysql
from csv import reader
# 1. 准备数据
f = open(r'D:\shaoxiao\文档\第四周sql\链家深圳二手房.csv',encoding='utf-8')
r1 =reader(f)
# 2. 链接数据库获取游标对象
sql1 = pymysql.connect(
user='root', #用户名
password='shaoxiao', #密码
host='127.0.0.1', #IP地址
port=3306, #端口号
database='school', #默认连接数据库/多个数据库默认哪个
charset='utf8mb4', #编码
autocommit=False #是否自动提交,默认关
)
s1 = sql1.cursor()
# 3. 上传数据
# 1) 准备数据(如果对应的数据库存在就切换数据库,如果不存在就创建数据库)
#a.方法1
try:
s1.execute('create database house default character set utf8mb4;')
except pymysql.Error:
print('数据库存在,已切换到指定数据库')
s1.execute('use house;')
#b.方法2
# s1.execute('show databases;')
# names=[x[0] for x in s1.fetchall()]
# if 'house' in names:
# print('数据库存在,已切换到指定数据库')
# s1.execute('use house;')
# else:
# s1.execute('create database house default character set utf8mb4;')
# 2)准备数据表 如果存在就直接使用,不存在就创建
# a.手动先把表名和字段名写入
try:
s1.execute('''
create table old_house(
h_id int not null unique auto_increment,
地区 varchar(10),
标题 varchar(50),
小区 varchar(20),
位置 varchar(20),
单价 varchar(20),
总价 int,
户型 varchar(20),
面积 varchar(20),
朝向 varchar(20),
装修 varchar(20),
primary key(h_id)
);
''')
except pymysql.Error:
print('该表已经存在!')
# 3. 插入数据
ziduan = next(r1)
names = ','.join(ziduan)
fromat_str = ','.join(['%s' for x in ziduan])
s1.executemany(f'insert into old_house({names}) values ({fromat_str});',list(r1))
sql1.commit()17.数据上传
本节1813字2025-04-18 17:10:45