python第八课:数据序列化

在进行接下来的学习中可以先做几道练习题【答案放到文章最后了】

python-文件操作入门练习题:

1.编写程序,创建一个文件名为 a.txt,文件中写入随意写入两行内容:

2.编写程序,显示上个练习生成的 a.txt 文件内容。


一、数据序列化

1.1数据序列化

  • 序列化:将一个任意的数据类型转换成python能识别和处理的字符串

  • 逆序列化:将python能识别的字符串转换成对应的数据类型

  • 序列化的目的:将数据类型保存到磁盘上,也可以实现将数据发生给另外一个主机

数据类型

  • 字符串

  • 整数

  • 列表

  • 元组

  • 集合

  • 字典

实现序列化的方法

  • pickle

  • json

二、pickle模块

  • 序列化方法:pickle.dump()

  • 逆序列化方法:pickle.load()

pickle.dump实现序列化

pickle.dump(要保存的对象, 文件名)

案例:将字典实现保存到文件中

# 导入模块
import pickle
# 定义一个字典对象
nameList = {"tom":["hebei",18,"男"], "jerry":["tianjin",20,"女"]}
# 打开文件,打开方式 wb
file = open("d:/py1/c.pkl","wb")
# 用dump方法将字典写入到打开的文件中
pickle.dump(nameList, file)
# 关闭文件
file.close()

pickle.load实现逆序列化

pickle.load(文件名)

案例:从文件中读取字典类型保存的数据

import pickle
file = open("d:/py1/c.pkl","rb")
d1 = pickle.load(file)
file.close()
print(d1)

三、json模块

json的特点

  • JSON 是纯文本;

  • JSON 便于阅读和编写;

  • JSON 具有清晰的层级结构;

  • 有效地提升网络传输效率;

JSON 语法规则

  • 大括号保存对象;

  • 中括号保存数组;

  • 对象数组可以相互嵌套;

  • 数据采用键值对表示;

  • 多个数据由逗号分隔;

JSON 值

  • 数字(整数或浮点数);

  • 字符串(在双引号中);

  • 逻辑值(true 或 false);

  • 数组(在中括号中);

  • 对象(在大括号中);

示例

{
    "name": "tom", 
    "age": 18,
    "isMan": true,
    "school": null, 
    "address": {
        "country": "中国",
        "city": "河北",
        "street": "石家庄"
    },
    "numbers": [2, 6, 8, 9],
    "links": [
        {
            "name": "zaizhuo",
            "url": "http://www.zaizhuo.cn"
        },
        {
            "name": "载卓",
            "url": "http://www.zaizhuo.com"
        }
    ]
}

读取json文件

  • son.load(json文件名)

  • json.dump(data, f, ensure_ascii=False)

案例:读取json文件

# 导入模块
import json
# 打开文件
f = open('d:/py1/1.json', "r", encoding='UTF-8')
# 读取json文件
data = json.load(f)
# 返回的data 数据类型为字典或列表
print(data)
f.close()

案例:写入json格式数据

import json
data = {'name': 'tom', 'age': 20, 'country': '中国'} f = open('temp.json', 'w', encoding='UTF-8') json.dump(data, f, ensure_ascii=False)
# ensure_ascii=False 代表中文不转义
f.close()


答案一:

f1=open("d:/py1/a.txt","w")
str="hello world\n"
str2="i am  ma"
f1.write(str)
f1.write(str2)
f1.close()

答案二:

f1=open("d:/py1/a.txt","r")
f2=f1.readlines()
print(f2)
f1.close()


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值