用文本文件保存一个 Python 对象

如果我们想用文本文件保存一个 Python 对象怎么操作?

这里就涉及到序列化的问题,序列化指的是将内存中的对象转化为可以存储的格式。Python 中最常用两种方式进行序列化:

  1. PICKLE模块
  2. JSON 格式
一:PICKLE
我们首先通过一个实例将 Python 的一个字典存入到文件中并读取出来恢复成字典对象,这个过程中用的就是 pickle 模块:

理解:./courses.data指的是当前目录下courses里面的数据,然后调用pickle的dump函数,第一个参数是要序列化的对象(字典),

第二个参数是要写入的文件,注意写入和读取文件都需要使用 b 二进制模式,然后再打开文件,调用pickle的load函数读取文件,生成新的字典,看是否能恢复。

最终我们写入文件并读取后仍然可以恢复到原来的字典对象。如果只是想将对象序列化成一个字节流,那可以使用 pickle.dumps(obj)

二:JSON

JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式,JSON 是存储和交换文本信息的语法,普遍使用这种方式。互联网项目中,JSON 序列化是作为 Web Service API 提供

接口连接不同服务的常用方法,尤其必须要理解为什么要序列化。。JSON 格式在互联网应用开发中应用非常广泛,可以作为不同的服务组件之间进行数据传递

的格式。在互联网应用提供的各种 API 接口返回值基本都是 JSON 格式。

Python 也提供了 json 模块支持 JSON 序列化,仍然用上面的例子,我们用 JSON 的格式进行序列化:

理解:JSON调用dumps函数把对象(字典)dumps成字符串形式去传递以及保存当前的python对象,注意后缀是.json,返回38个字符,dumpsloads 分别执行了序列化和反序列化的操作,注意函数名后面别漏了s,并且 JSON 序列化后的内容为字符串,所以文本写入和读取不需要用二进制格式。

猜你喜欢

转载自www.cnblogs.com/LifeIsHardIUsePyhon/p/9059600.html