python学习站 /第四周mysql数据库
阅读主题
正文字体
字体大小

17.数据上传

本节1813字2025-04-18 17:10:45
"""
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()


网友评论

相关作品