Json是各程序通用的数据格式;pickle是Python特有的,可以存储很多Python特有的数据,如函数地址等

Json的简单使用:

 import json
jsondata={
"user":"dong",
"name":"dongxiaodong",
"age":100
}
#字典(json对象)转换为字符串
strjson=json.dumps(jsondata)
print(type(strjson)) #输出:<class 'str'> #字符串转换为json对象
dicjson=json.loads(strjson)
print(dicjson["age"]) #输出:100

Pickle

Pickle序列化:

 import pickle

 def funx1(valuex):
print("---------------",valuex) jsondata={
"user":"dong",
"name":"dongxiaodong",
"age":100,
"funx":funx1 #保存函数地址,函数地址是以函数名确定的
} #序列化,将字典转换为byte对象
bytejson=pickle.dumps(jsondata)
print(type(bytejson)) #输出:<class 'bytes'> #保存到文件中
open("ww.txt","wb").write(bytejson)

Pickle反序列化:

import pickle

#必须有序列化相同的函数名,只要函数名相同即可,参数任意
def funx1():
print("**********") strjson=open("ww.txt","rb").read()
#字符串转换为json对象
dicjson=pickle.loads(strjson) print(dicjson["age"]) #输出:100
dicjson["funx"]() #调用函数,输出:**********

Shelve(对pickle的上层封装)

序列化

import shelve

#打开文件
s=shelve.open("fileshelve") #建立列表数据
listx=["","",""] #保存数据
s["listx"]=listx
s["user"]="dongxiaodong"
s["name"]="dong" #关闭文件
s.close()

反序列化:

import shelve

#打开文件
s=shelve.open("fileshelve") print(s.get("listx")) #输出:['11', '22', '33']
print(s.get("user")) #输出:dongxiaodong #关闭文件
s.close()

加密与解密:

Base64 可逆

import base64

#加密
en=base64.b64encode("dongxiaodong".encode("utf-8"))
print(en.decode("utf-8")) #输出字符串:ZG9uZ3hpYW9kb25n #解密
de=base64.b64decode(en).decode("utf-8")
print(de) #输出字符串:dongxiaodong

md5 不可逆

import hashlib

#方法一
mx=hashlib.md5() #s生成md5对象 mx.update(b"dongxiaodong") #添加内容,拼接内容
mx.update(b"dd") # 输出十六进制格式
print(mx.hexdigest()) #输出:f67d530272ebb0cf17ec7cdf2372b6cb #方法二
mx2=hashlib.md5(b"dongxiaodongdd") print(mx2.hexdigest()) #输出:f67d530272ebb0cf17ec7cdf2372b6cb

Sha1 不可逆

import hashlib

s=hashlib.sha1()

s.update(b"dongxiaodongdd")

print(s.hexdigest()) #输出:6a878a19687fc95d76f602d1580b54e0f0d2b88d

Hmac

键值对进行加密

import hmac

#参数(键,值)
h=hmac.new(b"dd",b"dongxiaodong") #如果存在中文,则需要使用encode
#h=hmac.new(b"dd","东小东dd".encode("utf-8")) print(h.hexdigest())

Python档案袋( Json、pickle、加密与解密)的更多相关文章

  1. 【python】-- json & pickle、xml、requests、hashlib、shelve、shutil、configparser、subprocess

    json & pickle Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] ...

  2. python 序列化 json pickle

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  3. python之json&pickle

    用于序列化的两个模块: json:用于字符串和python数类型间进行转换 oickle:用于python特有的类型和python的数据类型间进行转换 json.pickle模块提供四个功能:dump ...

  4. python基础--json,pickle和shelve模块

    一.JSON &pickle 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换  字符串必须是双引号,不能是单引号 pickle,用于python特有的类型 和 ...

  5. Python(序列化json,pickle,shelve)

    序列化 参考:https://www.cnblogs.com/yuanchenqi/articles/5732581.html # dic = str({'1':'111'}) # # f = ope ...

  6. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  7. python 全栈开发,Day25(复习,序列化模块json,pickle,shelve,hashlib模块)

    一.复习 反射 必须会 必须能看懂 必须知道在哪儿用 hasattr getattr setattr delattr内置方法 必须能看懂 能用尽量用__len__ len(obj)的结果依赖于obj. ...

  8. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  9. Python学习第二阶段Day2(json/pickle)、 shelve、xml、PyYAML、configparser、hashlib模块

    1.json/pickle   略. 2.shelve模块 import shelve # shelve 以key value的形式序列化,value为对象 class Foo(object): de ...

随机推荐

  1. TweenMax.js

    适用于移动端和现代互联网的超高性能专业级动画插件Tweenmax是GreenSock 动画平台的核心,配合其他插件 可动画CSS属性.滤镜效果. 颜色. 声音. 色彩. 帧. 饱和度. 对比度. 色调 ...

  2. C#连接MySQL

    由于工作需要,从本地Sqlite数据库转为MySql数据库.遇到了一些坑,随后又埋了.记录下过程: 一.安装MySql 首先上官网下载windows版的MySql.解压.详情是参考了几位同鞋的文章: ...

  3. JFinal Druid 配置

    /** * 数据库密码加密,执行如下命令,生成加密密码 * java -cp druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools ...

  4. 如何在本地数据中心安装Service Fabric for Windows集群

    概述 首先本文只是对官方文档(中文,英文)的一个提炼,详细的安装说明还请仔细阅读官方文档. 虽然Service Fabric的官方名称往往被加上Azure,但是实际上(估计很多人不知道)Service ...

  5. HeadFirst学习笔记-2.观察者(Observer)模式

    认识观察者模式 我们用报纸和杂志的订阅为例来介绍: 报社的业务就是出版报纸. 向某家报社订阅报纸,只要他们有新报纸出版,就会给你送来.只要你是他们的订户,你就会一直收到新报纸. 当你不想再看报纸的时候 ...

  6. Final Cut Pro X for Mac(FCPX专业视频剪辑工具)实用技巧篇!

    Final Cut Pro X for Mac是一款非常强大的专业视频剪辑工具,全球很多人都在用!现在小编给大家带来一些关于Final Cut Pro X for Mac的使用技巧,希望对大家以后的应 ...

  7. Spark内核

    一些名词概念 AM : ApplicationMaster RM : ResourceManager NM : NodeManager Backend : 后台 RpcEnv : RPC 进程和进程的 ...

  8. redis对hash进行的相关操作

    redis对hash类型操作的相关命令以及如何在python使用这些命令 redis对hash类型操作的命令: 命令 语法 概述 返回值 Redis Hdel 命令 hdel key field [f ...

  9. Android Studio之回退Gradle版本方法

    Android Studio之回退Gradle版本方法 (Minimum supported Gradle version is 4.10.1. Current version is 4.6.)   ...

  10. matplotlia应用

    一.简单使用 使用函数 plt.polt(x,y,label,color,width) 根据x,y 数组 绘制直,曲线 import numpy as np #引用numpy库,从新命名它为np(以后 ...