Python的json and pickle序列化

json序列化和json反序列化

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '人生入戏'
import json

a = {
    "name":"test",
    "age":"20",
}
#json序列化
with open("json_test","w",encoding="utf-8") as f:
    f.write(json.dumps(a)) # 等同于这个 json.dump(a,f)

#json反序列化
with open("json_test","r",encoding="utf-8") as f:
    print(json.loads(f.read())) #等同于这个  print(json.load(f))

pickle序列化和反序列化

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '人生入戏'
import pickle

def hello():
    print("Hello!")
    return 0
a = {
    "name":"test",
    "age":"20",
    "func":hello
}
with open("pickle_test","wb") as f:
    f.write(pickle.dumps(a))  #等同于这个 pickle.dump(a,f)

with open("pickle_test","rb") as f:
    print(pickle.loads(f.read())["func"]()) #等同于这个 print(pickle.load(f)["func"]())

JSON和pickle模块的区别

1、JSON只能处理基本数据类型。pickle能处理所有Python的数据类型。

2、JSON用于各种语言之间的字符转换。pickle用于Python程序对象的持久化或者Python程序间对象网络传输,但不同版本的Python序列化可能还有差异。

3、pickle Python自己程序之间进行程序数据交换,支持Python的所有数据类型。

4、json 不同语言之间的交换 只要某种语言支持json。

 

posted @ 2017-08-13 20:19  人生入戏  阅读(114)  评论(0编辑  收藏  举报