第四十二次总结:json模块与pickle模块

什么是json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。

 

 

json模块

主要功能

把数据进行序列化与反序列化的操作

序列化

 

把一个数据,转化为一个字符串。 字符串是json规范的字符串。

res = json.dupms(数据)
​
ensure_ascii=False
可以让保存的中文不被编码为我们看懂的样子

返回值res,它是一个字符串.

 

把字符串转为双引号的字符串

import json
​
m = 'hello'
r = json.dumps(m)
print(r)

 

列表成员分别是单引,双引,三引符号,均转为双引号字符串

import json
​
m = ['hello', "你好", """在不在"""]
r = json.dumps(m)
print(r)

["hello", "\u4f60\u597d", "\u5728\u4e0d\u5728"]

 

dumps 英 [dʌmps] 美 [dʌmps] v. (尤指在不合适的地方)丢弃,扔掉,倾倒;丢下;抛弃;推卸;(向国外)倾销,抛售 dump的第三人称单数

 

反序列化

 

json.loads(str数据)

把一个字符串,还原为它原有的数据类型

 

import json
​
f = open('b.txt', 'r', encoding='utf8')
content_str = f.read()
f.close()
​
print(content_str, type(content_str))
c = json.loads(content_str)
print(c, type(c))

 

 

小结

json模块的主要两个方法

1,json.dumps(数据)

接收一个数据,把它进行处理,最终得到一个字符串。

字符串,它是一个json类型的字符串

2,json.loads(str数据)

还原str数据中包裹的内容

获得真正的对象

 

 

dump与dumps

dumps方法

接收一个数据,把数据进行序列化,得到一个序列化后的结果

 

dump方法

接收一个数据,接收一个文件对象

把数据序列化,并保存到文件对象中

 

两者区别

使用dumps保存

import json
​
name_list = ["张三333","李四222"]
f = open("a.txt", "w", encoding="utf8")
name_str = json.dumps(name_list, ensure_ascii=False)
f.write(name_str)
f.close()

 

使用dump保存

import json
​
name_list = ["张三333","李四222"]
f = open("a.txt", "w", encoding="utf8")
json.dump(name_list,f,ensure_ascii=False)
f.close()

 

记忆dumps与dump的方法

英语中,对于复数形式,都会在单词的未位,加上s

一个苹果 apple

两个苹果 two apples

 

我们的dumps一般处理了数据后,都会获得一堆数据

理解为复数

 

dump它自动帮我们做了文件的处理

 

会获得数据 = json.loads(json字符串)

 

load与loads

 

import json
#
f = open("a.txt", "r", encoding="utf8")
c = json.load(f)  # 1,读取文件 f.read()  2,把文件的内容进行反序列化 json.loads(内容)
f.close()
​
print(c, type(c))

pickel模块

用法

导入模块

import pickle

 

import pickle
​
age_list = [11,34]
​
age_bytes = pickle.dumps(age_list)
print(age_bytes, type(age_bytes))

 

序列化,反序列化,用法同json

 

import pickle
​
age_list = [11,34]
​
# 序列化
age_bytes = pickle.dumps(age_list)
print(age_bytes, type(age_bytes))
​
# age_bytes  ---- > 列表
age_li = pickle.loads(age_bytes)
print(age_li, type(age_li))

 

正则表达式

正则表达式的功能就是进行匹配

类似于字符串的find方法

但是比find方法更强大

 

正确

则,那么

如果匹配成功,那么。。。要做什么呢

 

re模块

python中使用正则表达式的模块

import re

 

match函数

 

r = match(正则式,字符串)

如果正式式对字符串进行匹配结果是有值的

那么r就是一个匹配成功的对象

该对象有一个group()方法

调用group()方法,可以得到匹配成功的准确数据

 

 

pattern 英 [ˈpætn] 美 [ˈpætərn] n. 模式;方式;范例;典范;榜样;样板;图案;花样;式样 v. 构成图案(或花样);使形成,促成(某行为模式) 第三人称单数: patterns 复数: patterns 现在分词: patterning 过去式: patterned 过去分词: patterned

 

match 英 [mætʃ] 美 [mætʃ] n. 火柴;比赛;竞赛;敌手;旗鼓相当的人 v. 般配;相配;相同;相似;相一致;找相称(或相关)的人(或物);配对 第三人称单数: matches 复数: matches 现在分词: matching 过去式: matched 过去分词: matched

 

group 英 [ɡruːp] 美 [ɡruːp] n. 组;群;批;类;簇;集团;(尤指流行音乐的)演奏组,乐团,乐队 v. (使)成群,成组,聚集;将…分类;把…分组 第三人称单数: groups 复数: groups 现在分词: grouping 过去式: grouped 过去分词: grouped

 

例子:

import re
​
ret = re.match("....","流浪地球第6季")
print(ret)
print(ret.group())

 

 

 

匹配单个字符

.

正则式中的.符号,代表1个任意的符号,除了\n

 

[] 有或的意思

中括号中写入多个元素

正则进行匹配的时候只要有一个是里面的

那么就匹配成功

 

匹配中括号中任意一个

import re
​
p = "[ab]"
s = "bb"
ret = re.match(p,s)
print(ret)
# print(ret.group())
import re
​
p = "[ab][ab]"
s = "bb"
ret = re.match(p,s)
print(ret)
# print(ret.group())

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值