json中load和loads区别
相同点
- dump 和 dumps 都实现了序列化
- load 和 loads 都实现反序列化
变量从内存中变成可存储或传输的过程称之为序列化
序列化是将对象状态转化为可保存或可传输格式的过程。
变量内容从序列化的对象重新读到内存里称之为反序列化
反序列化是流转换为对象。
区别
1. load 和 loads (反序列化)
load:针对文件句柄,将json格式的字符转换为dict,从文件中读取 (将string转换为dict)
1 |
a_json = json.load(open('demo.json','r'))
|
loads:针对内存对象,将string转换为dict (将string转换为dict)
1 |
a = json.loads('{'a':'1111','b':'2222'}')
|
2. dump 和 dumps(序列化)
dump:将dict类型转换为json字符串格式,写入到文件 (易存储)
1 |
a_dict = {'a':'1111','b':'2222'}
|
dumps:将dict转换为string (易传输)
1 |
a_dict = {'a':'1111','b':'2222'}
|
总结
根据序列化和反序列的特性
loads: 是将string转换为dict
dumps: 是将dict转换为string
load: 是将里json格式字符串转化为dict,读取文件
dump: 是将dict类型转换为json格式字符串,存入文件
JSON进阶
序列化
1 |
# 使用class对象的__dict__方法 |
反序列化
1 |
def dict2student(d): |
python中的序列化和反序列化
Python提供两个模块来实现序列化:cPickle和pickle。这两个模块功能是一样的,区别在于cPickle是C语言写的,速度快,pickle是纯Python写的,速度慢。
- 变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling
- 变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling
1 |
try: |
1.将内存对象存取到磁盘
1 |
a = dict(a=1, b=2, c=3) |
1 |
a = dict(a=1, b=2, c=3) |
2.从磁盘读取到内存对象
1 |
pickle.load(open('a.txt', 'rb')) #从file-like Object中直接反序列化出对象
|
原文:http://loghb.com/2018/06/27/Pyhton%E5%9C%A8json%E4%B8%ADload%E5%92%8Cloads%E5%8C%BA%E5%88%AB/
json中load和loads区别的更多相关文章
- 【python】json中load和loads区别
相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容从 ...
- package.json中dependencies和devDependencies区别
package.json中dependencies和devDependencies区别 dependencies: 应用能够正常运行依赖的包.用户发布环境,依赖的包不仅开发环境能够使用,生产环境也能使 ...
- Python json库中load、loads、dump、dumps的区别与用法
1 json.loads() 将json格式的数据转化为字典类型 data_json = '{"msg": "登录成功", "code": ...
- Json中dumps、loads、dump、load函数实例讲解
1.dumps() 1. json.dumps() 用于将字典(dic)类型的数据转成字符串(str),直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数. imp ...
- json -- dump load dumps loads 简单对比
json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块>>&g ...
- Python JSON dump ,load,dumps,loads
JSON是一种轻量级的数据交换格式. json.dump() 将Python数据格式序列化为json数据格式(字符串)并储存在json文件之中. json.load()将Jons数据(字符串)反序列化 ...
- python json中的 dumps loads函数
一.概念理解 1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行js ...
- JSON中的{}与[]的区别
[]:索引数组 {}:关联数组(js中,即对象)
- jquery的load()事件和ajax中load()方法的区别
load事件 当图像加载时,改变 div 元素的文本: $("img").load(function(){ $("div").text("Image ...
随机推荐
- R ggplot2 改变颜色
p<-ggplot(iris,aes(Petal.Length,Petal.Width,color=Species))+geom_point()cols=c("red",&q ...
- mysql数据库批量操作
批量KILL会话: 1.首先,根据条件将查询到要kill的进程写入文件:如:desc information_schema.processlist; SELECT concat('KILL ',id, ...
- Excel TargetRange.Validation为空的
做Excel的时候遇到过TargetRange.Validation为空,赋值类似空指针一样的情况. 这样的情况,不懂Excel调试了好久,最后还知道,这个对象需要自己去定义才能够进行赋值, 这样定义 ...
- bash的使用技巧
- linux回调函数的使用
#include<stdio.h> #include<pthread.h> #include<unistd.h> pthread_mutex_t mutex; pt ...
- NAT--Network Address Translator
定义 Nat用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术.除了转换IP地址外,还出现了可以转换TCP.UDP端口号的NAPT(Network Address Ports Tr ...
- 1.重学javascript (一)
一.script标签解析 <script>xxx</script>这组标签,是用于在html 页面中插入js的主要方法.它主要有以下 几个属性: 1.charset:可选.表示 ...
- ssh2——Interceptor拦截器
尽管没学过struts1吧.可是了解到struts1中并没有拦截器, 到Struts2才有.它是基于WebWork发展起来的, 顾名思义,说到拦截器大家首先肯定会想到它是拦截东西的,起到一个限制的作 ...
- KMP算法完整教程 (下)
下面我们用数学归纳法来解决这个填值的问题. 这里我们借鉴数学归纳法的三个步骤(或者说是动态规划?): 1.初始状态 2.假设第j位以及第j位之前的我们都填完了 3.推论第j+1位该怎么填 初始状态我们 ...
- js生成唯一的uuid
---恢复内容开始--- 在做项目的时候出现这样的一种情况,需要动态生成唯一的uuid,刚开始我的思路是这样的,我可以根据时间来做,然后出现了下面的思路: var uuid = "cms&q ...