json&pickle

json&pickle

用于序列化的两个模块
json,用于字符串 和 python数据类型间进行转换,可以与其他语言通用
pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load

示例1(json):
import json
person = {
    'name' : 'maria',
    'age'  : 22,
    'sex'  : 'female'
}
with open(r'text.txt','w') as f:
    json.dump(person,f)         #原则上一次dump一次load,因为多次dump后,在load会出错
    #f.write(json.dumps(person))    #效果同上

运行结果:
在这里插入图片描述

示例2:
import json,pickle
with open(r'text.txt','r') as f:
    data = json.load(f)
    #data = json.loads(f.read())
print(data)

运行结果:

{'name': 'maria', 'age': 22, 'sex': 'female'}
示例3(pickle)
import pickle
def hello(name):
    print('hello {}'.format(name))
person = {
    'name' : 'maria',
    'age'  : 22,
    'sex'  : 'female',
    'func' : hello
}
with open(r'text.txt','wb') as f:
    pickle.dump(person,f)         #原则上一次dump一次load,因为多次dump后,在load会出错
                                #pickle可以处理函数在内存的地址,
    #f.write(pickle.dumps(person))    #效果同上

运行结果:
在这里插入图片描述

示例4
import pickle
def hello(name,age):        #因为data中又函数内存地址,但是上一个代码运行完后就已经释放
                            #所以要添加新的
    print('{} is {} years old'.format(name,age))
with open(r'text.txt','rb') as f:
    data = pickle.load(f)
    #data = pickle.loads(f.read())
print(data)
print(data['func']('maria',23))

运行结果:

{'name': 'maria', 'age': 22, 'sex': 'female', 'func': <function hello at 0x035B9C00>}
maria is 23 years old
None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值