python 序列化 json, pickle
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 序列化 json, pickle相关的知识,希望对你有一定的参考价值。
什么是Json:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。Json采用完全独立于语言的文本格式,但是也使用了类似C语言的家族习惯(例如C,C++,C#,Java,JavaScript,Perl,Python等),这些特性,使Json成为理想的交换语言。
对于简单数据类型的encoding 和 decoding:
###encoding >>> import json >>> obj=[[1,2,3],(‘a‘,‘b‘,‘c‘),{‘4‘:5,‘6‘:7},‘def‘] >>> encoding_json=json.dumps(obj) >>> print(encoding_json) [[1, 2, 3], ["a", "b", "c"], {"4": 5, "6": 7}, "def"] #注意这里元组转化为列表 >>> print(repr(obj)) [[1, 2, 3], (‘a‘, ‘b‘, ‘c‘), {‘4‘: 5, ‘6‘: 7}, ‘def‘] #这里只是转化为字符串
>>> json.dumps({‘b‘:4,‘a‘:5,‘e‘:6})
‘{"a": 5, "b": 4, "e": 6}‘
>>> json.dumps({‘b‘:4,‘a‘:5,‘e‘:6},sort_keys=True)
‘{"a": 5, "b": 4, "e": 6}‘
>>> a = json.dumps({‘b‘:4,‘a‘:5,‘e‘:6},sort_keys=True,indent=5)#indent指明缩进为5
>>> print(a)
{
"a": 5,
"b": 4,
"e": 6
}
在Json的编码过程中,会存在从Python数据类型向Json类型的转化。
Python | Json |
dict | object |
list,tuple | array |
str | string |
int,float | number |
True | true |
False | false |
None | null |
## decode >>> encoding_json ‘[[1, 2, 3], ["a", "b", "c"], {"4": 5, "6": 7}, "def"]‘ >>> decoding_json=json.loads(encoding_json) >>> print(decoding_json) [[1, 2, 3], [‘a‘, ‘b‘, ‘c‘], {‘4‘: 5, ‘6‘: 7}, ‘def‘] >>> type(decoding_json) <class ‘list‘> >>> print(decoding_json[2][‘4‘]) 5
从Json到Python的数据类型转化对照如下:
JSON | Python |
object | dict |
array | list |
string | unicode |
number | int,long |
ture | True |
false | False |
null | None |
以上是关于python 序列化 json, pickle的主要内容,如果未能解决你的问题,请参考以下文章