Python创建数据表(python建立一张数据表)

http://www.itjxue.com  2023-03-29 15:32  来源:未知  点击次数: 

掌握Python 操作 MySQL 数据库

本文Python 操作 MySQL 数据库需要是使用到 PyMySQL 驱动

Python 操作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。

注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:

权限设置:

初始化 MySQL:

启动 MySQL:

查看 MySQL 运行状态:

Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

登陆:

创建数据库:

查看数据库:

PyMySQL 模块使用 pip命令进行安装:

假如系统不支持 pip 命令,可以使用以下方式安装:

pymysql .connect 函数:连接上数据库

输出结果显示如下:表面数据库连接成功

使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:

conn.cursor():获取游标

如果要操作数据库,光连接数据是不够的,咱们必须拿到操作数据库的游标,才能进行后续的操作,游标的主要作用是用来接收数据库操作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:

输出结果为:

cursor 返回一个游标实例对象,其中包含了很多操作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()

execute(query,args=None):

executemany(query,args=None):

其他游标对象如下表:

完整数据库连接操作实例如下:

以上结果输出为:

创建表代码如下:

如下所示数据库表创建成功:

插入数据实现代码:

插入数据结果:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

查询数据代码如下:

输出结果:

DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:

本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查操作,文章通过简洁的代码方式进行示例演示,给使用 Python 操作 Mysql 的工程师提供支撑。

python爬虫数据存到非本地mysql

pymysql 基本使用 八个步骤以及案例分析

一.导入pymysql模块

导入pymysql之前需要先安装pymysql模块

方法一:直接在pycharm编译器里面输入 pip install pymysql

方法二:win+r -- 输入cmd --在里面输入pip install pymysql

ps:在cmd中输入pip list后回车 可以找到安装的pymysql就表示安装成功了

1

2

3

4

5

6

1

2

3

4

5

6

在pycharm编译器中导入

import pymysql

1

2

1

2

二.获取到database的链接对象

coon = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='pymysql_test')

1

1

user:是你的数据库用户名

password:数据库密码

database:你已经创建好的数据库

1

2

3

1

2

3

三.创建数据表的方法

cursor.execute(

'''create table if not exists pets(id int primary key auto_increment,

src varchar(50),

skill varchar(100)''')

1

2

3

4

1

2

3

4

四.获取执行sql语句的光标对象

cousor = coon.cousor()

1

1

五.定义要执行的sql语句

1.sql的增加数据的方法

sql = '''insert into test_mysql(id,src,skill) values(%d,%s,%s)'''

1

1

ps: test_mysql 是你连接到的数据库中的一张表

id,src,skill 这个是你创建表时所定义的字段关键字

%d,%s,%s 这个要根据你创建的字段关键字的类型而定,记住要一一对应

1

2

3

1

2

3

2.sql的删除数据的方法

sql_1 = '''delete from test_mysql where src=%s;'''

1

1

3.sql的修改数据方法

sql_2 = '''update test_mysql set src=%s where skill=%s;'

1

1

4.sql的查询方法

sql_3 = '''select * from test_mysql where skill = %s'''

1

1

六.通过光标对象执行sql语句

1.执行增加数据的sql语句

cousor.execute(sql, [2, '', '000000'])

运行后在mysql的可视化后台就可以直观的添加的数据

1

2

1

2

2.执行删除数据sql语句

new = ''

cousor.execute(sql_1, [new])

PS:这里就是根据sql语句where后面的条件进行删除对应的数据

要记住传入的数据要与sql的where后面条件匹配

1

2

3

4

1

2

3

4

3.执行修改数据的sql语句

url = ''

pwd = '666666'

cousor.execute(sql_2,[pwd,url])

1

2

3

1

2

3

4.执行查询数据的sql语句

result1 = cousor.fetchone()

fetchone() 查询=整个表中的第一条数据,

如果再次使用就会查找到第二条数据,

还可以在括号内输入id值查询到相应的数据

result2 = cousor.fetchmany()

fetchmany()查询到表里的多条数据,

在括号里输入几就会查找到表的前几条数据

result2 = cousor.fetchall()

fetchall()查询到sql查询匹配到的所有数据

print(result)

用print输出语句就能直接打印输出所查询到的数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

**总结: 在执行sql语句要传入参数时,这个参数要以列表或者元组的类型传入**

1

1

七.关闭光标对象

cousor.close()

1

1

八.关闭数据库的链接对象

coon.cousor()

1

1

九.洛克王国宠物数据抓取案例

import requests

import pymysql

from lxml import etree

from time import sleep

# 数据库链接

conn = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='pymysql')

cursor = conn.cursor()

# 执行一条创建表的操作

cursor.execute(

'''create table if not exists pets(id int primary key auto_increment,name varchar(50),src varchar(100),industry text)''')

url = ''

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'

}

response = requests.get(url=url, headers=headers)

response.encoding = 'gbk'

html = response.text

# print(html)

# 宠物名称

# 宠物图片(图片在 lz_src)

# 宠物技能(跳转详细页)

tree = etree.HTML(html)

li_list = tree.xpath('//ul[@id="cwdz_list"]/li') # 所有的宠物

for li in li_list:

name = li.xpath('./@name')[0] # 每一个宠物的名称

src = 'http:' + li.xpath('./a/img/@lz_src')[0] # 图片链接

link = '' + li.xpath('./a/@href')[0] # 宠物的详细链接

industry = [] # 数组里面存放每一个对象,每一个对象就是一个技能

# 对详细链接发起请求,获取技能

try:

detail_resp = requests.get(url=link, headers=headers)

sleep(0.5)

detail_resp.encoding = 'gbk'

detail_tree = etree.HTML(detail_resp.text)

# 技能

skills = detail_tree.xpath('/html/body/div[5]/div[2]/div[2]/div[1]/div[1]/table[4]/tbody/tr')

del skills[0]

del skills[0]

for skill in skills:

item = {}

item['name'] = skill.xpath('./td[1]/text()')[0] # 技能

item['grade'] = skill.xpath('./td[2]/text()')[0] # 等级

item['property'] = skill.xpath('./td[3]/text()')[0] # 属性

item['type'] = skill.xpath('./td[4]/text()')[0] # 类型

item['target'] = skill.xpath('./td[5]/text()')[0] # 目标

item['power'] = skill.xpath('./td[6]/text()')[0] # 威力

item['pp'] = skill.xpath('./td[7]/text()')[0] # pp

item['result'] = skill.xpath('./td[8]/text()')[0] # 效果

industry.append(item)

# print(industry)

# 数据保存 (mysql)

sql = '''insert into pets(name,src,industry) values (%s,%s,%s);'''

cursor.execute(sql, [name, src, str(industry)])

conn.commit()

print(f'{name}--保存成功!')

except Exception as e:

pass

cursor.close()

conn.close()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

十.总结

本章内容主要是给大家讲解一下在爬虫过程中如何将数据保存mysql数据库中去,

最后面这个案例就是一个示范,希望这篇文章能给大家带来帮助,都看到这里了给

个三连支持一下吧!!!

1

2

3

1

2

3

Python之MySQL操作

MySQL 是目前使用最广泛的数据库之一,它有着良好的性能,能够跨平台,支持分布式,能够承受高并发。下载地址: MySQL :: Download MySQL Community Server 安装参考: 图解MySQL5.7.20免安装版配置方法-百度经验 (baidu.com)

Python 大致有如下 5 种方式操作 MySQL。

先使用如下建表语句创建一张简单的数据库表。

2.1 mysqlclient

执行 pip install mysqlclient 进行安装,看一下具体操作。

新增

查询

cursor 查看方法

修改

删除

2.2 PyMySQL

执行 pip install pymysql 进行安装,使用方式与 mysqlclient 基本类似。

2.3 peewee

执行 pip install peewee 进行安装,看一下具体操作。

定义映射类

新增

查询

修改

删除

2.4 SQLAlchemy

执行 pip install sqlalchemy 进行安装,看一下具体操作。

定义映射类

新增

查询

修改

删除

Python学习日记

像Excel一样使用Python(一)

在进行数据处理时,如果数据简单,数量不多,excel是大家的首选。但是当数据众多,类型复杂,需要灵活地显示切片、进行索引、以及排序时,python会更加方便。借助python中的numpy和pandas库,它能快速完成各种任务,包括数据的创建、检查、清洗、预处理、提取、筛选、汇总、统计等。接下来几篇文章,将以excel为参照,介绍python中数据的处理。

提到pandas,那就不得不提两类重要的数据结构,Series和DataFrame,这两类数据结构都是建立在numpy的数组array基础上。与array相比,Series是一个一维的数据集,但是每个数据元素都带有一个索引,有点类似于字典。而DataFrame在数组的基础上,增加了行索引和列索引,类似于Series的字典,或者说是一个列表集。

所以在数据处理前,要安装好numpy , pandas。接下来就看看如何完成一套完整的数据操作。

创建数据表的方法分两种,分别是从外部导入数据,以及直接写入数据。

在python中,也可外部导入xlsx格式文件,使用read_excel()函数:

import pandas as pd

from pandas import DataFrame,Series

data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))

print data

输出:

Gene Size Function

0 arx1 411 NaN

1 arx2 550 monooxygenase

2 arx3 405 aminotransferase

……

即:调用pandas中read_excel属性,来读取文件test.xlsx,并转换成DataFrame格式,赋给变量data。在每一行后,自动分了一个索引值。除了excel,还支持以下格式文件的导入和写入:

Python写入的方法有很多,但还是不如excel方便。常用的例如使用相等长度的字典或numpy数组来创建:

data1 = DataFrame(

{'Gene':['arx1','arx2','arx3'],

'Size':[411,550,405],

'Func':[np.NaN,'monooxygenase','aminotransferase ']})

print data1

输出

Func Gene Size

0 NaN arx1 411

1 monooxyg arx2 550

2 amino arx3 405

分配一个行索引后,自动排序并输出。

在python中,可以使用info()函数查看整个数据的详细信息。

print data.info()

输出

RangeIndex: 7 entries, 0 to 6

Data columns (total 3 columns):

Gene 7 non-null object

Size 7 non-null int64

Function 5 non-null object

dtypes: int64(1), object(2)

memory usage: 240.0+ bytes

None

此外,还可以通过shape, column, index, values, dtypes等函数来查看数据维度、行列组成、所有的值、 数据类型:

print data1.shape

print data1.index

print data1.columns

print data1.dtypes

输出

(3, 3)

RangeIndex(start=0, stop=3, step=1)

Index([u'Func', u'Gene', u'Size'], dtype='object')

Func object

Gene object

Size int64

dtype: object

在excel中可以按“F5”,在“定位条件”中选择“空值”,选中后,输入替换信息,再按“Ctrl+Enter”即可完成替换。

在python中,使用函数 isnull 和 notnull 来检测数据丢失, 包含空值返回True,不包含则返回False。

pd.isnull(data1)

pd.notnull(data1)

也可以使用函数的实例方法,以及加入参数,对某一列进行检查:

print data1['Func'].isnull()

输出

Func Gene Size

0 True False False

1 False False False

2 False False False

再使用fillna对空值进行填充:

data.fillna(value=0)

#用0来填充空值

data['Size'].fillna(data1['Size'].mean())

#用data1中Size列的平均值来填充空值

data['Func']=data['Func'].map(str.strip)

#清理Func列中存在的空格

Excel中可以按“Ctrl+F”,可调出替换对话框,替换相应数据。

Python中,使用replace函数替换:

data['Func'].replace('monooxygenase', 'oxidase')

将Func列中的'monooxygenase'替换成'oxidase'。

Excel中,通过“数据-筛选-高级”可以选择性地看某一列的唯一值。

Python中,使用unique函数查看:

print data['Func'].unique()

输出

[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']

Excel中,通过UPPER、LOWER、PROPER等函数来变成大写、小写、首字母大写。

Python中也有同名函数:

data1['Gene'].str.lower()

Excel中可以通过“数据-删除重复项”来去除重复值。

Python中,可以通过drop_duplicates函数删除重复值:

print data['Func'].drop_duplicates()

输出

0 NaN

1 monooxygenase

2 aminotransferase

3 methyltransferase

Name: Func, dtype: object

还可以设置“ keep=’last’ ”参数,后出现的被保留,先出现的被删除:

print data['Func'].drop_duplicates(keep='last')

输出

2 aminotransferase

3 methyltransferase

6 monooxygenase

8 NaN

Name: Func, dtype: object

内容参考:

Python For Data Analysis

蓝鲸网站分析博客,作者蓝鲸(王彦平)

(责任编辑:IT教学网)

更多

推荐Fireworks教程文章