python数据插入连接MySQL数据库

目标 网站:豆瓣TOP250榜单
选择的原因 相似特征: 详情页、翻页√

(一) 安装驱动器mysql-connector

mysql-connector 是 MySQL 官方提供的驱动器,我们用它来连接使用MySQL,输入 pip 命令来安装 mysql-connector:
python数据插入连接MySQL数据库_第1张图片
ps: pip和conda list 均显示安装好了,测试安装成功:
在这里插入图片描述

(二)Python完整代码实例

数据库基本操作教程Python MySQL - 点击 -

mysql.connector_代码示例 - CSDN博客 -

import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   # 数据库主机地址
    user="root",        # 数据库用户名
    passwd="123456",    # 数据库密码
    database="tptest"   # 直连数据库,如果数据库不存在,会输出错误信息
)
print(mydb)

mycursor = mydb.cursor()    #获取游标,接下来用cursor提供的方法

''' 建表 : 只执行一次
mycursor.execute("create table template"
                 "(Id INT(10) NOT NULL AUTO_INCREMENT,"  # 记得设置主键
                 "PRIMARY KEY (Id),"					 # 主键第二行
                 "Team VARCHAR(100) NOT NULL,"
                 "Number INT NOT NULL,"
                 "Name VARCHAR(100) NOT NULL,"
                 "Positions VARCHAR(100) NOT NULL)"
                 )
'''

# 插入数据一:具体数值直接插入
       mycursor.execute("insert into template(Team,Number,Name,Positions)values('湖人','25','詹姆斯','前锋')")
# 插入数据二:赋值给变量,将变量的值插入mysql
	data1 #假设已赋值,且type = list
	data2 #假设已赋值,且type = list
#需转换为list类型才能插入mysql
    sql_name = "".join(data1)
    sql_age = "".join(data2)
    sql = "INSERT INTO databaseName(DB_name,DB_age) VALUES (%s, %s)"
    val = (sql_name,sql_age)
    mycursor.execute(sql, val)
'''

mydb.commit()     # 调用此方法进行提交
mycursor.close()  # 关闭游标
mydb.close()      # 关闭数据库连接

(三)常见报错类型与解决办法

报错:python将数据插入mysql数据库:Unknown column ‘xxx’ in 'field list’

解决方法:

1、如果是作插入操作“insert into…”的话,很可能是插入表的字段没匹配对,比如有一些要求非空的字段,要检查是否都赋了值。

2、查看插入时,赋值是否加了单引号:values(“’”+变量+“’”,’“’”+变量+“’”)。

3、总之,就是要仔细检查sql语句,最好先去数据库中,运行一下看看。

报错:Mysql出现ERROR 1265 (01000): Data truncated for column ‘name’ at row 1

解决方法:赋值超出了name设置的宽度,因此去增大name的宽度。

报错:Python ‘list’ cannot be converted to a MySQL type

解决方法:list类型无法插入mysql,需要先转换数据类型:

data_str = "".join(data_list)

你可能感兴趣的:(Python与爬虫)