您的位置:首页 > 编程语言 > Python开发

Python的Json处理

2017-11-24 09:29 155 查看
在上篇博客中已经说明了Json数据转换格式的普遍性,这里我抛一个JSON官方文档,不了解的同志们可以阅览:

http://json.org/

在每种语言中都有相对应的Json格式的处理,在Python中则是JSON模块,模块提供两个函数(方法):dump/dumps(),load/loads()

dump/dumps():将 Python 对象编码成 JSON 字符串

load/loads():将已编码的 JSON 字符串解码为 Python 对象

上面方法所谓加S和不加S,区别在于是否生成FP文件(一种附属解释性文件)

平时用的时候就直接使用这两个方法就可以,但是他们的基本原理是什么呢?

我查看了他们的源码(源码就不放了,随便一个IDE就可以查看):

dump/load()分别是在对象序列化-编码-解码的层次上进行Json对象转化为py中的dict类型,或者反响操作;

在对象序列化这个问题上,为什么要将对象序列化?序列化都用于哪些场景?哪些是不会序列化的?

一系列的问题,我会在后一篇博客进行总结。

http://blog.csdn.net/qq_34417408/article/details/78621174

边学习边总结是个不错的方法,这样知识容易系统化。废话不多说,继续聊py;

在进行encode/decode前都会进行序列化版本的判断,随后针对相对的编码方式进行操作,一般默认的是utf-8;特殊情况可以在方法参数中指出;

那么Json和Dict之间是怎样转换的呢?

上图说话:



有了映射表,就好多了,随后我会将之前的Java版的原生Json解析器改成py版,欢迎借鉴;

https://github.com/weiyanyanyan/JsonPython

其实在py中还有两种方法可以进行json和py类型的转换,那就是在Js中经常用的eval()/excel(),当然在JS中使用时经常加上(),防止JS误以为是代码块,跳过处理;

虽然是py的json处理,但聊了对象序列化,JS,Java,没有最好的语言,只有最适合的语言,hh….相互学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息