1、简介
在python
自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python
对象数据类型而是string
类型。
这样在我们传递参数的时候就会出现格式不正确的情况,这时候就要用到load
实现反序列化
python
对象数据类型包括list
,dict
,tuple
,set
等
2、案例1:load
load
:load
主要处理的是文件流
首先我们新建一个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
loads
:loads
主要处理的是字符流
正常打印一个字符形式的字典,返回结果为str类型
1
2
3
|
test = "{'a':'1','b':'2'}" print (test) print ( type (test)) |
返回结果
1
2
3
|
{ 'a' : '1' , 'b' : '2' } < class 'str' > |
使用loads
将sting
类型转换为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
中的load
、loads
实现反序列化示列的文章就介绍到这了,更多相关load与loads
内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/ztcbug/p/15422275.html