一、模块
1.1 Python自带模块
1.1.1 Json模块
# json模块使用
# 导入模块
import json # 直接导入模块
# 1-打开读取jiso文件
with open('D:/Python大数据就业/4-Python基础/day07-模块-网络-多任务/4-资料/order_detial.json','r',encoding='utf-8') as f:
data_lines = f.readlines()
print(data_lines)
# 2- 对读取的文件数据进行处理
# 需要将每行的json数据转为字典处理
for line in data_lines:
# 对每行数据去除\n
line_str = line.replace('\n','')
print(line_str)
# 将json字符串转为字典 loads 将字典数据转为json字符串 json_str = json.dumps(字典数据)
# 如果直接导入模块 需要使用 模块名.函数() 模块名.变量
line_dict = json.loads(line_str)
print(type(line_dict))
# 使用字典操作方法处理数据
total_price= line_dict['total_price']
print(total_price)
1.1.2 Datatime模块
# 日期时间模块
from datetime import datetime,timedelta
# 获取当前日期时间
dt_now = datetime.now()
print(dt_now)
# 获取时间戳 timestamp需要将日期传递到方法中
unixtime_now = datetime.timestamp(dt_now)
print(unixtime_now)
# 将时间戳数据转为datetime时间
dt = datetime.fromtimestamp(1617021920)
print(dt)
# 日期的加减
# 获取加减的时间单位
t = timedelta(days=7)
dt_add = dt_now + t
print(dt_add)
dt_sub = dt_now - t
print(dt_sub)
# 字符串时间 转为datetime类型的时间
dt_str = '2017-10-20 15:20:22'
dt2 = datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S')
print(type(dt2))
# 将datetime类型数据转为 字符串
dt_now_str = dt_now.strftime('%Y/%m/%d %H:%M:%S')
print(dt_now_str)
1.1.3 Decimal模块
# Decimal模块使用
# 导入模块中的所有函数,类,变量
from decimal import *
# 将小数数据转为Decimal
d = Decimal(3.1415926)
print(d)
# 指定保留小数 会进行四舍五入
d2 = d.quantize(Decimal('0.000'))
print(d2)
d3 = Decimal(5.123).quantize(Decimal('0.000'))
d4 = d2+d3
print(d4)
1.1.4 random模块
# random使用
# 将randint函数通过as命名了一个别称
# randint 可以根据指定范围随机产生一个整数数据
from random import randint as rt
num = rt(0,3)
print(num)
name = ['张三','李四','王五','赵六','aa','bb']
# 随机产生下标
index = rt(0,len(name)-1)
print(name[index])
# 验证码
date_str = '123456789asdfghjklqwertyuiopzxcvbnm'
index1 = rt(0,len(date_str)-1)
index2 = rt(0,len(date_str)-1)
index3 = rt(0,len(date_str)-1)
index4 = rt(0,len(date_str)-1)
code = date_str[index1] + date_str[index2] + date_str[index3] +date_str[index4]
print(code)
1.2 三方模块
pip下载安装
1.3 requests模块使用
网络通讯介绍
网络通讯模型
C/S模型
C:client
S:server
B/S模型
B:brower
S:server
TCP协议
HTTP协议
requests使用
-
获取json数据
# 请求服务器获取json数据
import requests
# 1-发送请求
# 定义请求网址
url = 'https://api.oioweb.cn/api/weather/weather?city_name=上海市'
# 定义请求头部数据
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'
}
# 发送get请求
respose = requests.get(url,headers=headers) # 定义变量接收响应的数据
# 对返回的json数据进行解析,转为字典
response_dict = respose.json()
print(response_dict)
# 提取需要的字段数据
# 获取风向数据
wind_direction = response_dict['result']['wind_direction']
print(wind_direction)
-
获取html页面数据
安装lxml模块:
# 获取html页面中数据
import requests
from lxml import etree
# 1-发送请求
# 定义请求网址
url = '网站地址'
# 定义请求头部数据
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'
}
# 发送get请求
respose = requests.get(url,headers=headers) # 定义变量接收响应的数据
# 获取html的页面数据
html_text = respose.text
# 将html页面转为element元素数据
html_element = etree.HTML(html_text)
# 使用xpath语法开发获取数据
book_name1 = html_element.xpath('//*[@id="content-container"]/div[2]/div[3]/div/div[1]/div[1]/div[2]/p/a/text()')[0]
print(book_name1)
1.4 pymysql模块使用
# 使用pymysql模块操作数据
import pymysql
# 创建mysql的连接
clinet = pymysql.connect(host='localhost',port=3306,user='root',password='root')
# 生成游标操作数据库
cur = clinet.cursor()
# 数据库操作
# 本质是写sql语句,写在字符串中
sql_str = '''
create database if not exists pydata45 charset=utf8
'''
# 执行sql
cur.execute(sql_str)
# 创建表
sql_str2 = '''
create table if not exists pydata45.user(
id int,
name varchar(20),
age int,
gender varchar(20)
)
'''
# 执行sql语句
cur.execute(sql_str2)
# 写入数据
# 将列表数据写表中
sql_str3 = '''
insert into pydata45.user values(%s,%s,%s,%s)
'''
data_list= [1,'张三',20,'男']
# 执行写入语句
cur.execute(sql_str3,data_list)
# 写入数据必须有commit
clinet.commit()
# 将字典数据写入进入
sql_str4 = '''
insert into pydata45.user values(%(id)s,%(username)s,%(age)s,%(gender)s)
'''
data_dict= {'id':2,'username':'李四','age':20,'gender':'男'}
# 执行写入语句
cur.execute(sql_str4,data_dict)
# 写入数据必须有commit
clinet.commit()
# 查询写入的数据
sql_str5 = '''
select * from pydata45.user
'''
# 执行sql语句
cur.execute(sql_str5)
# 获取查询的数据
data = cur.fetchall()
print(data)
# 关闭连接
cur.close()
clinet.close()
1.4自定义模块使用
-
定义一个模块文件
# 自定义的模块文件
# 封装业务代码
name = '张三'
def add_func(a,b):
data = a+b
return data
class Student:
def __int__(self,name,age):
self.name = name
self.age = age
def func(self):
print(self.name)
print(self.age)
-
其他开发人员使用模块文件
# 开发人员自己的代码文件
from itcast import name,add_func,Student
print(name)
res = add_func(10,20)
print(res)
s = Student('张三',20)
s.func()