python持久化数据_Python中的对象持久化

什么是对象持久化?

对象持久化就是把结构化数据存储起来的过程,并且可以从存储文件恢复为原来的结构化数据。

对象持久化有什么用?

这个用途还是很广泛的,当我们需要保存一个字典文件或者列表文件的时候,我们不能用一般的方法来保存,因为在读取时,还是普通的字符串,并不是对应的字典或者列表了。此时就需要我们使用对象持久化的办法,保存为文件,在使用时读取文件,得到的仍然是原来的对象,或者可以很简单地转化为原来的对象。这在实际中,使用还是很多的。

怎么实现对象持久化

下面主要聊的是模块,而每个模块的方法都很类似,一般常用的都是以下4种方法:dumps()方法,将对象转换为字符串str格式;

dump()方法,将对象保存为文本文件;

loads()方法,将字符串str转换为相应的对象格式

load()方法,将文本文件中保存的转换为对象

都有哪些模块?

pickle模块:刚开始我都是用这个模块,这是Python自带的模块

cPickle模块:这是C语言版本的pickle,比pickle快很多

json模块:json是一种文件格式,但是也能用来进行对象持久化

UltraJSON模块:这是一个第三方的模块,和json模块很类似,但是速度比json模块快很多,也比pickle和cPikcle快很多,尤其是数据比较大的时候,这种差距就更明显了

我推荐使用UltraJSON模块,这个比其他模块在使用时都快很多,据说是目前最快的。虽然我们经常看到的json文件十分类似python中的字典,但是其实不仅字典对象能够被持久化,列表等其他对象也可以。

怎样把多个对象保存在一个文件中

一般我们正常使用,保存在文件中的只有一行,也只是一个对象,比如

import ujson

my_object = [[1, 2, 3], [4, 5, 6],[7, 8, 9]]#列表对象

with open('test.json', 'w') as f:

ujson.dump(my_object, f)

最后保存的结果是

[[1, 2, 3], [4, 5, 6],[7, 8, 9]]

但是如果我们希望保存的结果如下:

[1, 2, 3]

[4, 5, 6]

[7, 8, 9]

我们可以这么做:

import ujson

my_object = [[1, 2, 3], [4, 5, 6],[7, 8, 9]]#列表对象

with open('test.json', 'w') as f:

for data in b:

ujson.dump(data, f)

f.write('\n')

同样的道理,很多文件在读取时总体并不是json格式,但是每一行是的,那么就可以这样做:

import ujson

data = []

with open('file', 'r') as f:

for line in f:

data.append(ujson.loads(line))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值