pycharm(4)

Open API的加密

第一步、请求参数(字典的数据格式)进行排序

第二步、将他转换为kry=value&key=value的格式

第三步、进行md5的加密

import hashlib
from urllib import parse
# urllib:做网络爬虫
import time
def sign():
    dict1={'name':'xl','age':18,'time':time.time()}
    # 对请求参数进行ascll排序
    date=dict(sorted(dict1.items(),key=lambda itme:itme[0]))
    # 吧请求参数处理成key=value&key=value的格式
    date=parse.urlencode(date)
    # 进行md5的加密
    m=hashlib.md5()
    # 把字符串的数据格式处理成bytes的数据类型
    m.update(date.encode('utf-8'))
    return m.hexdigest()
print(sign())

 

 库的管理

1、标准库:安装python解释器后,直接带的os,sys,json,csv,time,datetime,hashlib

2、第三方的库:全球顶尖的程序员编写的库(有专门的网站可以下载:https://pypi.org/project/

   安装方式:

   1)、在线安装

       pip3 install 库的名称          (安装库的操作)

       pip3 uninstall 库的名称      (删除库的操作)

       pip3 install -u 库的名称      (升级库的操作)

   2)、离线安装

   3)、常用的第三方的库

          selsnium:UI测试框架

          pip3 install selsnium

          Appium:移动UI测试框架

          requests:接口测试框架

          pip3 install requests

          pymysql:操作MySQL

          pip3 install pymysql

          xlrd:操作Excl文件

          pip3 install xlrd

          Django:全站WEB框架

          flask:轻量级WEB框架

          fast:异步WEB框架

          Pytest:单元测试框架

          pip3 install pytest

3、自定义的库:就是我们自己编写的python文件

os实战

os:针对路径的处理

os.getced:获取当前路径

# 获取当前路径:os.getcwd
import os
print('当当前路径',os.getcwd())

 获取目录下的所有文件和文件夹

# 获取当前目录下的所有文件和文件夹
import os
for loo in os.listdir(path=os.getcwd()):
    print(loo)

 获取文件和目录信息

# 获取文件和目录信息
import os
print('获取文件和目录信息',os.stat('c:'))

 获取当前路径(另一种方式)

# 获取当前路径
import os
print('获取当前路径',os.path.dirname(__file__))

 获取当前路径的上一级路径

# 获取当前路径的上一级路径
import os
print(os.path.dirname(os.path.dirname(__file__)))

 获取操作系统:name

# 获取操作系统
import os
print('获取操作系统',os.name)

 获取环境变量:environ

# 获取环境变量
import os
print('获取环境变量',os.environ)

 判断文件是否存在

#判断文件是否存在
import os
base_dir=os.path.dirname(os.path.dirname(__file__))
loo=(os.path.join(base_dir,'data','name','login.txt'))
print('判断文件是否存在',os.path.exists(loo))

 time实战

获取时间戳

#获取时间戳
import time
print('获取时间戳',time.time())

 当前时间字符串格式

#当前时间字符串格式
import time
print('当前时间字符串格式',time.ctime())

 休眠(以秒为单位)

#休眠(以秒为单位)
import time
time.sleep(3)
print('hello!')

 时间戳转为本地时间

# 时间戳转为本地时间
import time
localTime=time.localtime(time.time())
print('年:{0},月:{1},日:{2}'.format(
    localTime.tm_year,localTime.tm_mon,localTime.tm_mday
))

print('中国人的方式',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
print(time.strftime('%Y-%m-%d %x',time.localtime()))

 datetime实战

相比于time模块,datetime也是表示时间的,但是会更加直观

查看当前时间

import datetime
# datetime是库
print('当前时间',datetime.datetime.now())

 在当前时间的基础上增加或者减少天数

import datetime
# 在当前时间的基础上增加或者减少多少天
print(datetime.datetime.now()+datetime.timedelta(days=10))

 json实战

序列化和反序列化

序列化:把内存里的数据类型转为字符串的数据格式,使能够存储到硬盘或者通过网络传输到远程,因为硬盘或者网络传输是时只接受bytes的数据类型。简单的说就是把Python的数据类型(字典,元素,列表)转为str的数据类型过程。

反序列化:就是str的数据类型转换为Python对象的过程

json.dumps():列表的序列化

# 列表的序列化
import json
list1=['go','python','java']
list_str=json.dumps(list1)
print(list_str)

 json.loads():列表的反序列化

# 列表的序列化
import json
list1=['go','python','java']
list_str=json.dumps(list1)
print(list_str)
# 列表的反序列化
str_list=json.loads(list_str)
print(str_list)

 

 

 

 

 

 元组的序列化和反序列化和列表的相同

 

字典的序列化和反序列化和列表的相同

注意:

indent=Ture:能让输出的结果结构化

ensure_ascli=Falsse:能够优化中文

 

 

文件的序列化:把目标内容写到文件中

# 序列化,将目标内容写到文件中
import json

dict1={'name':'xl','zge':18,'datas':[{'math':90,'english':80},{'yuwen':100,'wuli':100}]}
# 注意此时使用的是dump,并不是dumps
json.dump(dict1,open('data.txt','w',encoding='utf-8'),ensure_ascii=False)

 

 

 文件的反序列化:从文件里面读取文件的内容

# 反序列化:从文件里面读取文件的内容
# 注意:此时使用的是load并不是loads
print(json.load(open('data.txt','r')))

 

 

posted @ 2022-03-31 20:06  挣大钱  阅读(73)  评论(0编辑  收藏  举报