python学习第四章之json与pickle数据序列化

1.终于学到json了,简直是万分期待

2.json序列化:json.dumps()

 json反序列化:json.loads()

json对字典、列表、字符串起作用,可以在不同语言间进行交互。

pickle只支持python语言,Java只认识json,一般是dump一次,对应的load一次

3.(1)使用json将字典的一个内容存入文本中,

import json
info={
    'name':'alex',
    'age':22
}
f=open("test.text","w")
print(json.dumps(info))
f.write(json.dumps(info))
f.close()

 运行后,字典中的内容已经写入到test.text文本中,这时如果要读取改文本中的内容,就要用到反序列化:

import json
f=open("test.text","r")
data=json.loads(f.read())
print(data['age'])

 这时读取到的age为22

(2)如果在字典中有函数的内存地址,这时就要用到pickle,其他与json一样

import pickle
def sayhi(name):
    print("hello",name)
info={
    'name':'alex',
    'age':22,
    'func':sayhi
}
f=open("test.text","wb")
print(pickle.dumps(info))
f.write(pickle.dumps(info))
f.close()

 反序列为:

import pickle
def sayhi(name):
    print("hello", name)
    print("hello2",name)
f=open("test.text","rb")
data=pickle.loads(f.read())
print(data['func']("wu"))

 (3)而在pickle的序列中,f.write(pickle.dumps(info))与pickle.dump(info,f)是一样的,那么也可以写成如下形式

import pickle
def sayhi(name):
    print("hello",name)
info={
    'name':'alex',
    'age':22,
    'func':sayhi
}
f=open("test.text","wb")
pickle.dump(info,f)     #与f.write(pickle.dumps(info))一样
f.close()

 同理反序列化也一样,

import pickle
def sayhi(name):
    print("hello", name)
    print("hello2",name)

f=open("test.text","rb")
data=pickle.load(f)   #data=pickle.loads(f.read())
print(data['func']("wu"))

 好的,完毕

转载于:https://www.cnblogs.com/wuxiaoru/p/11384575.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值