Python json和pickle模块

 序列化模块:json 和 pickle

用于序列化的两个模块

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

 

import json

s = '{"key1":"value1","key2":"value2"}'     # ==> 用json模块将字符串转化成其他数据类型,字符串里出现引号必须用双引号
ret = json.loads(s)                         # ==> loads 由字符串转其他数据类型
print(ret,type(ret))

l = '[11,22,3,56,75]'
result =json.loads(l)
print(result,type(result))

# 输入结果:
{'key1': 'value1', 'key2': 'value2'} <class 'dict'>
[11, 22, 3, 56, 75] <class 'list'> 

 

import json

ret = json.load(open('ethan.txt','r'))  # ==> 将文档(内部是字符串格式)转换成python的其他数据类型
print(ret,type(ret))                    # ==> 文档里是字典样式的字符串

# 输入结果:
{'key1': 'value1', 'key2': 'value2'} <class 'dict'>


# 总结:
# json.loads()用于将形似字典、列表、元组的字符串,转换成字典、列表、元组
# json.load() 用于将文档(内容是形似字典、列表、元组的字符串)转换成字典、列表、元组  

 

import json

di = {"key1":"value1","key2":"value2"}
ret = json.dumps(di)                    # ==> 将字典、列表、元组 转换成字符串格式
print(ret,type(ret))

# 输入结果:
{"key1": "value1", "key2": "value2"} <class 'str'>

json.dump(di,open('test2.txt','a+'))    # ==> 将字典、元组、列表转换成字符串格式并写入文档

# 输入结果: test2文件内容
{"key1": "value1", "key2": "value2"}

# 总结:
# json.dumps()  用于将字典、列表、元组,转换成字符串
# json.dump()   用于将字典、列表、元组,存入文档中并转换成字符串  

 

import pickle

d = {'name': 'ethan', 'age': 28}
ret = pickle.dumps(d)                       # ==> pickle将字典、元组、列表转换成二进制
print(ret, type(ret))

l = [11, 22, 3, 45, 54]
res = pickle.dumps(l)
print(res)

pickle.dump(d, open('test2.txt', 'ab'))     # ==> 将字典、元组、列表转换成二进制写入文档

# 注意 dump load 不要一起运行,会报错,一步一步来

f = open('test2.txt', 'rb')
r = pickle.loads(f.read())                  # ==> 将二进制转换成字典、列表、元组
# r = pickle.load(f)
print(r)

# 输入结果:
b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x05\x00\x00\x00ethanq\x02X\x03\x00\x00\x00ageq\x03K\x1cu.' <class 'bytes'>
b'\x80\x03]q\x00(K\x0bK\x16K\x03K-K6e.'
{'name': 'ethan', 'age': 28}

# 总结:
# pickle.dumps()  用于将字典、列表、元组,转换成二进制
# pickle.dump()   用于将字典、列表、元组,存入文档中并转换成二进制
# pickle.loads()  用于将二进制,转换成字典、列表、元组
# pickle.load()   用于将文档二进制,转换成字典、列表、元组  

 

转载于:https://www.cnblogs.com/python-gm/p/7891783.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值