1. Time
2. os
3. sys
4. JSON字典的序列化与反序列化
5. 文件的序列化与反序列化
6. md5加密
------------------------------------------------------------ Time
# import time as t
#
# # print(dir(t)) # 有什么方法
#
# # 获取时间戳
# print(int(t.time()))
#
# # 获取当前时间
# print(t.localtime(t.time()))
# print(t.strftime('%y-%m-%d %H:%M:%S',t.localtime()))
#
# t.sleep(1)
------------------------------------------------------------ os
import os #最常用是目录的处理
# print(os.system('ipconfig')) # 乱码改为GBK
# 当前文件的目录
#print(dir(os))
# 创建目录mkdir
# os.mkdir('I:/log')
# 删除目录
# os.rmdir('I:/log')
# 系统帮助命令 cmd:net helpmsg 183
# 给目录改名
# os.rename('I:/log','I:/nowlog')
# 对目录的处理
# print (u'当前文件目录:',os.path.dirname(__file__))
# print (u'文件当前目录的上一级目录:',os.path.dirname(os.path.dirname(__file__)))
#print (u'文件当前目录的上一级目录:',os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
# 目录路径拼接
base_dir=os.path.dirname(os.path.dirname(__file__))
#print(os.path.join(base_dir,'demo2/test1'))
# 读取文件
f=open(os.path.join(base_dir,'demo2/login'),'r') # 以读模式
print(f.read())
'''
请求参数是不确定的,可能有一个,可能有N个
'''
def f(*args,**kwargs):
return kwargs
print(f(name='wuya',age='18'))
print(f(name='wuya',age='18',address='xian'))
---------------------------------------------------------------------- sys
import sys
import os
# 把目录路径添加到sys.path,这样就可以找到另外目录下的所有模块了----------非常好用
#sys.path.append(r'C:\Users\Administrator\PycharmProjects\pythonProject3\demo')
demo_path = os.path.join(os.path.dirname(os.path.dirname(__file__)),'demo')
sys.path.append(demo_path)
#from demo.timeTest import *
# from timeTest import *
# index()
# 输出查找模块的范围路径
# for item in sys.path:
# print(item)
----------------------------------------------------------- JSON字典的序列化与反序列化
一、概念理解
1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
(2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)
2、json.dump()和json.load()主要用来读写json文件函数
字典的序列化与反序列化
import json
'''
序列化:把python的数据类型转为str的类型过程
反序列化:str的类型转为python的数据结构
'''
dict1={'name':'wuya','age':18}
'''字典的序列化与反序列化'''
# 序列化:dict--->str
dict_str=json.dumps(dict1)
print(u'序列化后的结果信息:',dict_str,type(dict_str))
# 反序列化
str_dict=json.loads(dict_str)
print(u'反序列化后的结果信息:',str_dict,type(str_dict))
列表的序列化与反序列化的过程
'''列表的序列化与反序列化的过程'''
import json
list1=['admin','wuya','weike']
# 序列化
list_str=json.dumps(list1)
print(u'序列化后的结果信息')
print(list_str,type(list_str))
# 反序列化
str_list = json.loads(list_str)
print(u'反序列化后的结果信息')
print(str_list,type(str_list))
元组的序列化与反序列化的过程
import json
'''元组的序列化与反序列化的过程'''
tuple1=(1,2,3)
# 序列化
tuple_str = json.dumps(tuple1)
print(u'序列化后的结果信息:')
print(tuple_str,type(tuple_str))
str_tuple = json.loads(tuple_str)
# 反序列化
print(u'反序列化后的结果信息:')
print(str_tuple,type(str_tuple))
-------------------------------------------------------------- 文件的序列化与反序列化
json.dump()用于将dict类型的数据转成str,并写入到json文件中。
json.load()用于从json文件中读取数据,类型为str。
import json
import requests
'''文件的序列化与反序列化'''
url = 'https://way.jd.com/jisuapi/weather'
params = {
'city' : '安顺',
'cityid' : '111',
'citycode' : '101260301',
'appkey' : '8c60eac7cface16fc71d865bbef56172'
}
r = requests.get(url,params)
'''
1.文件反序化后,类型是unicode
2.进行编码,把unicode类型转为str类型
3.然后使用反序列化,把str转为字典类型
'''
# json.dump()用于将dict类型的数据转成str,并写入到json文件中。
json.dump(r.content.decode('utf-8'),open('weather.json','w'))
#print(dict1,type(dict1))
# json.load()用于从json文件中读取数据,类型为str。
str_dict = json.loads(json.load(open('weather.json','r')))
print(str_dict,type(str_dict))
------------------------------------------------------------------- md5加密
'''
对请求参数做ascil码的排序
做url encode 编码:name=wuya&age=18&city=xian&work=tester
做md5-->sign-->f6ab5ff84e2b2cb4202e1c0dde4f139c
'''
# dict1=dict(sorted(dict1.items(),key=lambda item:item[0]))
from urllib import parse
import hashlib
# datas=parse.urlencode(dict1)
#
# md5=hashlib.md5()
# md5.update(datas.encode('utf-8'))
# print(md5.hexdigest())
def getMd5(**kwargs):
dict1 = dict(sorted(kwargs.items(), key=lambda item: item[0]))
datas = parse.urlencode(dict1)
md5 = hashlib.md5()
md5.update(datas.encode('utf-8'))
return md5.hexdigest()
print(getMd5(name='wuya',gji='china'))