pickle详解--JSON模块

本文介绍了Python中的pickle和JSON模块。JSON是一种独立于语言的文本格式,常用于多语言间的字符转换,Python中JSON主要由list和dict构成。而pickle模块则用于Python对象的序列化和反序列化,支持所有Python数据类型,主要用于Python程序内部的数据持久化或对象传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 JSON采用完全独立于语言的文本格式

                 只能处理基本数据类型

                用于各种语言之间的字符转换

JSON在python中分别由list和dict组成。

 

一、encoding和decoding

dumps: 将对象序列化

#coding:utf-8
import json

# 简单编码===========================================
print json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
# ["foo", {"bar": ["baz", null, 1.0, 2]}]

#字典排序
print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)
# {"a": 0, "b": 0, "c": 0}

#自定义分隔符
print json.dumps([1,2,3,{'4': 5, '6': 7}], sort_keys=True, separators=(',',':'))
# [1,2,3,{"4":5,"6":7}]
print json.dumps([1,2,3,{'4': 5, '6': 7}], sort_keys=True, separators=('/','-'))
# [1/2/3/{"4"-5/"6"-7}]

#增加缩进,增强可读性,但缩进空格会使数据变大
print json.dumps({'4': 5, '6': 7}, sort_keys=True,indent=2, separators=(',', ': '))
# {
#   "4": 5,
#   "6": 7
# }


# 另一个比较有用的dumps参数是skipkeys,默认为False。
# dumps方法存储dict对象时,key必须是str类型,如果出现了其他类型的话,那么会产生TypeError异常,如果开启该参数,设为True的话,会忽略这个key。
data = {'a':1,(1,2):123}
print json.dumps(data,skipkeys=True)
#{"a": 1}

 

import json
a={'1':2,'2':3}
print(type(a))
b=json.dumps(a)   #序列化
print(type(b))
c=json.loads(b)   #反序列化
print(type(c))

结果:

<class 'dict'>
<class 'str'>
<class 'dict'>

 

 

二、pickle模块 

python的pickle模块实现了python的所有数据序列和反序列化。

不同:与JSON不同的是pickle不是用于多种语言间的数据传输,它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值