json、pickle和base64
- json.dumps() 用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
- json.dump() 用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件。
- json.loads() 用于将str类型的数据转成dict。
- json.load() 用于从json文件中读取数据。
- Base64编码是一种“防君子不防小人”的编码方式,优点:速度快,ascii字符,肉眼不可理解。
- base64.b64encode() 将bytes类型数据进行base64编码(变为字母加数字),返回编码后的bytes类型。
- base64.b64decode() 将base64编码的bytes类型进行解码,返回解码后的bytes类型。
import base64
import pickle # 字典
dict1 = {
'count': "count",
'selected': True
} def main():
# 转成bytes string
dict2 = pickle.dumps(dict1)
print('dumps:', dict2) # base64 编码
encode_str = base64.b64encode(dict2) print('b64encode:', encode_str)
print('b64后使用decode:', encode_str.decode())
print('b64后使用encode:', encode_str.decode().encode()) decode_str = base64.b64decode(encode_str)
loads_dict = pickle.loads(decode_str)
print('b64后使用b64decode():', decode_str)
print('b64后使用loads:', loads_dict) if __name__ == '__main__':
main()
pickle 的用法类似于json
import json
import pickle dict1 = {
'count': "count",
'selected': True
} jsDumps = json.dumps(dict1)
pkDumps = pickle.dumps(dict1)
jsLoads = json.loads(jsDumps)
pkLoads = pickle.loads(pkDumps) print(dict1)
print(type(dict1)) print(jsDumps)
print(type(jsDumps)) print(pkDumps)
print(type(pkDumps)) print(jsLoads)
print(type(jsLoads)) print(pkLoads)
print(type(pkLoads))
pickle 只能在python中用python文件间序列化,实现了两个python 内存数据的交互(可序列化任何对象(类,列表、字典等))
json 在任何软件间可以在内存数据之间的交互,只能序列化常规的对象(列表 ,字典等)
json、pickle和base64的更多相关文章
- Pythoy 数据类型序列化——json&pickle 模块
Pythoy 数据类型序列化--json&pickle 模块 TOC 什么是序列化/反序列化 pickle 模块 json 模块 对比json和pickle json.tool 命令行接口 什 ...
- json pickle time
多层装饰器: 字符串格式化: 当字符串格式化时 , %% 生成器 使用函数创造的 yield递归模块PY:模块其他:类库 先导入 后使用 自定义模块内置模块第三方模块为什么要有模块 将代码归类模块的内 ...
- python序列化: json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- python模块概况,json/pickle,time/datetime,logging
参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html http://www.cnblogs.com/alex3714/articles/51 ...
- Python自动化 【第四篇】:Python基础-装饰器 生成器 迭代器 Json & pickle
目录: 装饰器 生成器 迭代器 Json & pickle 数据序列化 软件目录结构规范 1. Python装饰器 装饰器:本质是函数,(功能是装饰其它函数)就是为其他函数添加附加功能 原则: ...
- python学习之路-day4-装饰器&json&pickle
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 一.生成器 1.列表生成式 >>> L = [x * x for x in range(10 ...
- 0816 1459 json & pickle ,目录导入,目录规范
---恢复内容开始--- 1.json & pickle 磁盘上只能存储字符串或二进制数据,直接存字典.列表.元组等是存不了的,所以需要把各种数据转换成字符串格式,然后再存到硬盘. 直接将一个 ...
- Python-Day4 Python基础进阶之生成器/迭代器/装饰器/Json & pickle 数据序列化
一.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面 ...
- Python学习笔记——基础篇【第六周】——json & pickle & shelve & xml处理模块
json & pickle 模块(序列化) json和pickle都是序列化内存数据到文件 json和pickle的区别是: json是所有语言通用的,但是只能序列化最基本的数据类型(字符串. ...
- python基础6之迭代器&生成器、json&pickle数据序列化
内容概要: 一.生成器 二.迭代器 三.json&pickle数据序列化 一.生成器generator 在学习生成器之前我们先了解下列表生成式,现在生产一个这样的列表[0,2,4,6,8,10 ...
随机推荐
- Android开发常用的Intent的URI及示例
参考资料:http://www.oschina.net/code/snippet_166763_6502 //以下是常用到的Intent的URI及其示例,包含了大部分应用中用到的共用Intent. / ...
- HDU2586---How far away ?(lca算法)
Problem Description There are n houses in the village and some bidirectional roads connecting them. ...
- Jquery里live事件移除原因
live()事件 $('a').live('click', function() { alert("That tickles!") }); live事件Jq把alert函数绑定到$ ...
- 网络错误修复工具:Network Fault Repair Tool Build20160414
::请勿轻易修改此文件,以避免不可预知的错误 gwsbhqt@163.com @echo off color 0A setlocal enabledelayedexpansion title Netw ...
- 2.4 webpack + gulp 构建完整前端工作流
在前面的两个小节中已经完整的讲了 webpack 和 gulp 相关的内容,本小节中将会结合二者构建一个完整的前端工作流,内容目录为: 前端工程结构和目标 前端工程目录结构 gulp clean gu ...
- 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图
jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...
- 2018湘潭大学程序设计竞赛【E】
题目链接:https://www.nowcoder.com/acm/contest/105/E 题意:给你美食种类和查询次数,告诉你美味度和价格,给你固定钱数,问你最多能吃到多少美味度的食物.(X真是 ...
- 自动生成web api接口文档
然后打开web程序,访问ip:port/Help. 为什么可以直接输入Help就能访问呢,因为这个插件本身已经配置了路径,如下. public class HelpPageAreaRegistrati ...
- Android四大组件之Service浅见
Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是通过AIDL来实现进程间通信. Service的启动方式 Service的启动方式有两种,startSe ...
- Operator '?:' has lower precedence than '*'; '*' will be evaluated first
1.项目中用宏的时候,遇到如下警告 Operator '?:' has lower precedence than '*'; '*' will be evaluated first 2.错误原因 *操 ...