脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python中的load、loads实现反序列化示列

python中的load、loads实现反序列化示列

2022-02-15 12:54hqx Python

这篇文章主要介绍python中的load、loads实现反序列化,在python自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python对象数据类型而是string类型,下面来看详情内容吧

1、简介

python自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python对象数据类型而是string类型。

这样在我们传递参数的时候就会出现格式不正确的情况,这时候就要用到load实现反序列化

python对象数据类型包括list dicttupleset

2、案例1:load

loadload主要处理的是文件流

首先我们新建一个txt文件,文件中写入一个字典

?
1
2
{"a":"1","b":"2"}

这时候我们用py文件把他读取出来

?
1
2
3
4
5
f = open(r'C:\Users\张天赐\PycharmProjects\pythonProject\test\lianxi\load.txt','r',encoding='utf-8') #通过open打开刚刚新建的txt文档
a = f.read()   #读取f文件下所有的内容
print(a)  #打印下读取的内容
print(type(a)) #打印下读取内容的格式

返回结果

?
1
2
3
D:\software\python.exe C:/Users/张天赐/PycharmProjects/pythonProject/test/lianxi/111.py
{"a":"1","b":"2"}
<class 'str'>

 可以看到我们读取出来的内容看似字典,但是实际type类型是str类型的,如果在做接口测试的时候,接口需要传输

json格式的数据,这时候就会出现报错的情况。

解决方案:使用load方式,将文件中的数据转换成python对象中的dict字典格式

?
1
2
3
4
5
import json
f = open(r'C:\Users\张天赐\PycharmProjects\pythonProject\test\lianxi\load.txt','r',encoding='utf-8') #通过open打开刚刚新建的txt文档
a = json.load(f)  #读取f文件下所有的内容
print(a)  #打印下读取的内容
print(type(a)) #打印下读取内容的格式

返回结果

?
1
2
3
4
D:\software\python.exe C:/Users/张天赐/PycharmProjects/pythonProject/test/lianxi/111.py
{'a': '1', 'b': '2'}
<class 'dict'>

3、案例2:loads

loadsloads主要处理的是字符流

正常打印一个字符形式的字典,返回结果为str类型

?
1
2
3
test = "{'a':'1','b':'2'}"
print(test)
print(type(test))

返回结果

?
1
2
3
{'a':'1','b':'2'}
<class 'str'>

使用loadssting类型转换为python可读对象

?
1
2
3
4
5
6
import json
test = '{"a":"1","b":"2"}'
test1 = json.loads(test)
print(test1)
print(type(test1))

返回结果

?
1
2
{'a': '1', 'b': '2'}
<class 'dict'>

到此这篇关于python中的loadloads实现反序列化示列的文章就介绍到这了,更多相关load与loads内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/ztcbug/p/15422275.html

延伸 · 阅读

精彩推荐