python day28--json,pickle,hashlib,logging
一、json格式的限制
1.json格式的key必须是字符串数据类型,如果是数字dumps后会被转为字符串。
# dic = {1:2,3:4}
# str_dic = json.dumps(dic)
# print(str_dic)
# new_dic = json.loads(str_dic)
# print(new_dic)
2.元组可以作为vaule但会被转为列表,并且不能作为key
3.可以多次将数据dump进文件,但不能load出来。
# dic = {'abc':(1,2,3)}
# lst = ['aaa',123,'bbb',12.456]
# with open('json_demo','w') as f:
# json.dump(lst,f)
# json.dump(dic,f)
# with open('json_demo') as f:
# ret = json.load(f)
# print(ret)
#报错
4.想多次dump并load出来
dic = {'abc':(1,2,3)}
lst = ['aaa',123,'bbb',12.456]
with open('json_demo','w') as f:
str_lst = json.dumps(lst)
str_dic = json.dumps(dic)
f.write(str_lst+'\n')
f.write(str_dic+'\n')
with open('json_demo') as f:
for line in f:
ret = json.loads(line)
print(ret)
二、pickl
1.dump的结果是bytes,dump用的f文件句柄需要以wb的形式打开,load所用的f是'rb'模式
2.pickle支持几乎所有对象的
把对象写入,及读出
# class Student:
# def __init__(self,name,age):
# self.name = name
# self.age = age
#
# alex = Student('alex',83)
# ret = pickle.dumps(alex)
# 小花 = pickle.loads(ret)
# print(小花.name)
# print(小花.age) # class Student:
# def __init__(self,name,age):
# self.name = name
# self.age = age
#
# alex = Student('alex',83)
# with open('pickle_demo','wb') as f:
# pickle.dump(alex,f)
# with open('pickle_demo','rb') as f:
# 旺财 = pickle.load(f)
# print(旺财.name)
三、hashlib
1.
# 能够把 一个 字符串 数据类型的变量
# 转换成一个 定长的 密文的 字符串,字符串里的每一个字符都是一个十六进制数字
背下来
# md5_obj = hashlib.md5()#或者sha1等
# md5_obj.update(s1.encode('utf-8'))#encode必须要
# res = md5_obj.hexdigest()
# print(res,len(res),type(res))
2.动态加盐,更加安全
# username = input('username : ')
# passwd = input('password : ')
# md5obj = hashlib.md5(username.encode('utf-8'))
# md5obj.update(passwd.encode('utf-8'))
# print(md5obj.hexdigest())
3.文件一致性检验
# md5_obj = hashlib.md5()
# with open('5.序列化模块_shelve.py','rb') as f:
# md5_obj.update(f.read())
# ret1 = md5_obj.hexdigest()
#
# md5_obj = hashlib.md5()
# with open('5.序列化模块_shelve.py.bak','rb') as f:
# md5_obj.update(f.read())
# ret2 = md5_obj.hexdigest()
# print(ret1,ret2)
python day28--json,pickle,hashlib,logging的更多相关文章
- 【python】-- json & pickle、xml、requests、hashlib、shelve、shutil、configparser、subprocess
json & pickle Python中用于序列化的两个模块 json 用于[字符串]和 [python基本数据类型] 间进行转换 pickle 用于[python特有的类型] ...
- os模块/sys模块/json/pickle模块/logging模块(day16整理)
目录 今日内容 os模块 对文件操作 对文件夹此操作 辅助性的 了解 sys模块 json和pickle模块 json模块 pickle模块 logging模块 日志级别 添加设置 自定义配置 今日内 ...
- os模块 sys模块 json/pickle 模块 logging模块
目录 模块 1. os模块 2. sys模块 3. json和pickle模块 4. logging模块 (1)日志配置 (2)实际开发中日志的使用 模块 1. os模块 os模块有什么用 与操作系统 ...
- python 序列化 json pickle
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- python之json&pickle
用于序列化的两个模块: json:用于字符串和python数类型间进行转换 oickle:用于python特有的类型和python的数据类型间进行转换 json.pickle模块提供四个功能:dump ...
- python基础--json,pickle和shelve模块
一.JSON &pickle 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 字符串必须是双引号,不能是单引号 pickle,用于python特有的类型 和 ...
- 面向对象进阶------>模块 json pickle hashlib
何为模块呢? 其实模块就是.py文件 python之所以好用就是模块多 模块分三种 : 内置模块 . 拓展模块.自定义模块. 现在我们来认识:内置模块中的 序列化模块和 hashlib 模块 1 ...
- Python(序列化json,pickle,shelve)
序列化 参考:https://www.cnblogs.com/yuanchenqi/articles/5732581.html # dic = str({'1':'111'}) # # f = ope ...
- python模块--json \ pickle \ shelve \ XML模块
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...
随机推荐
- nodejs笔记之初识node
1.安装node; node -v //检测node是否安装成功 node可以做什么: 搭建服务器: 读写文件: 连接数据库: 爬虫: node的模块系统: 原生模块(如http,fs); 自定义模 ...
- ACM总结——2017区域赛网络赛总结
从省赛回来至今4周,每周周末都在打网络赛,每次都是划水,总结下自己弱弱的ACM吧!划水水~~ 首先是新疆赛区,基本上都是图论相关的东西,全靠队友,自己翻水水,实力躺了5道. 然后是沈阳赛区,终于有点贡 ...
- windows下python操作mysql模块安装
百度教程说安装 pip install mysqldb 这在我的电脑上安装失败: Could not find a version that satisfies the requirement mys ...
- UnicodeMath编码教程
目录 1. 简介 2. 编码简单数学表达式 2.1 分数 2.2 上标和下标 2.3 空白(空格)字符使用 3. 编码其他数学公式 3.1 open/close分隔符 关于大括号方程组(cases) ...
- JAVA中的责任链模式(CH01)
责任链模式的关键在于每一个任务处理者都必须持有下一个任务处理者的作用 纯的责任链:纯的责任链是只能也必须只有一个任务处理者去处理这个任务, 不会出现没有处理者处理的情况,也不会出现有多个处 ...
- bootStrap table 和 JS 开发过程中遇到问题汇总
1..bootStrap-table表头固定 在table定义的时候给高度属性就可以自动生成滚动条,并且固定表头[height: 220,] 2.为动态生成的DOM元素绑定事件 on("cl ...
- [C#]中获取当前程序运行路径的方法
获取当前程序运行路径: ①//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集.string str = System.AppDomain.CurrentDoma ...
- (15)线程---Condition条件
功能:也是通过阻塞控制线程数量.类似信号量\进程池\线程池的作用 语法:wait from threading import Condition con= Condition() conn.acq ...
- js中defer实现等文档加载完在执行脚本
我们可以使用defer来实现类似window.onload的功能: <script src="../CGI-bin/delscript.js" defer></s ...
- yii2框架中获取添加元素的主键
控制器层: 模型层: 返回结果是: