Python学习之路----json 和 pickle

JSON

在各种编程语言中都有各自规定的数据类型,且根据硬件平台的不同,占用的字节大小也不同。如果想要不同类型的语言之间进行通信,就需要转化成json字符串进行。

高级数据类型与JSON之间的转化


#将列表转化成字符串并存入文件
import json
file_dump = open('dump1','w',encoding = 'utf8')

list1 = [1,2.2,'hello',(4,5,6),{'name':'zhangsan'}]
x = json.dumps(list1)
print(x,type(x))
file_dump.write(x)
file_dump.close()

file_dump = open('dump1','r',encoding = 'utf8')
y = file_dump.read()
y = json.loads(y)
print(y,type(y))
file_dump.close()

#结果:
#[1, 2.2, "hello", [4, 5, 6], {"name": "zhangsan"}] <class 'str'>
#[1, 2.2, 'hello', [4, 5, 6], {'name': 'zhangsan'}] <class 'list'>


file_dump = open('dump2','w',encoding = 'utf8')
list1 = [1,2.2,'hello',(4,5,6),{'name':'zhangsan'}]
json.dump(list1,file_dump)
file_dump.close()

#dump()和dumps()的区别就是dump()可以直接以数据和文件描述符为参数,并直接把转化后的数据写入文件

PICKLE

json只能只能把python中几种特定的数据类型转化,但是却不能转化其他的一些数据类型,如类对象。pickle和json的功能差不多,但是pickle却能转化任何数据类型。

#将数据转化成二进制
import pickle
dict1 = {'name':'张三','age':'lisi'}
x = pickle.dumps(dict1)
print('x:{} type(x):{}'.format(x,type(x)))
y = pickle.loads(x)
print('y:{} type(y):{}'.format(y,type(y)))
#结果:
#x:b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x06\x00\x00\x00\xe5\xbc\xa0\xe4\xb8\x89q\x02X\x03\x00\x00\x00ageq\x03X\x04\x00\x00\x00lisiq\x04u.' type(x):<class 'bytes'>
#y:{'name': '张三', 'age': 'lisi'} type(y):<class 'dict'>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值