0
点赞
收藏
分享

微信扫一扫

引领采购数字化变革,商越科技如何帮企业穿越周期?

一、模块

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()
举报

相关推荐

0 条评论