load与loads

简介:

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

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

python对象数据类型包括list ,dict,tuple,set等

案例1:load

load:load主要处理的是文件流

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

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

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

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)) #打印下读取内容的格式

返回结果

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

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

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

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

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)) #打印下读取内容的格式

返回结果

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

案例2:loads

loads:loads主要处理的是字符流

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

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

返回结果

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

使用loads将sting类型转换为python可读对象

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

返回结果

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

python中的load、loads实现反序列化的更多相关文章

  1. python中json.load()、json.loads()、json.dump()、json.dumps()的区别

    json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将j ...

  2. Python 中数据的序列化和反序列化(json处理)

    概念: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming ...

  3. 解决python中json模块loads出来的结构都是unicode的问题

    在使用python的json模块对json字串反序列化成python对象的时候出现的字符串都是unicode类型,而不是python内置的str类型.在某种使用场景下用户必须做显式的转换才能正常使用, ...

  4. python中class的序列化和反序列化

    对于类的序列化:将类的成员变量名和数据作为一对键值对存储在物理内存中,例如 class A(object): def __init__(self): self.a = o self.b = 1 sel ...

  5. Python中使用json.loads解码字符串时出错:ValueError: Expecting property name: line 1 column 1 (char 1)

    解决办法,json数据只能用双引号,而不能用单引号

  6. Python中json.loads解析包含\n的字符串会出错

    用python中的json.loads解析字符串,失败了. [解决过程] 1.调试了半天,终于发现,如果把其中的: "呵呵加那么多连接啊\n\n这个标准还是不错的\n\n给大家推荐一个更多的 ...

  7. python常见模块-collections-time-datetime-random-os-sys-序列化反序列化模块(json-pickle)-subprocess-03

    collections模块-数据类型扩展模块 ''' 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque ...

  8. (数据科学学习手札142)dill:Python中增强版的pickle

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,相信不少读者朋友们都在Pyth ...

  9. python中5个json库的速度对比

    python中json的序列化与反序列化有很多库,具体选择使用哪一个,或者哪一个速度更快呢? 先上结果 json序列化与反序列化速度对比(按总时间排序:测试数据100 * 10000) ujson 序 ...

随机推荐

  1. Linux中MySQL的安装以及卸载

    一.MySQL MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司.在2008年1月16号被Sun公司收购.而2009年,SUN又被Oracle收购.目前 MySQL被 ...

  2. Linux系统的vsftpd服务配置

    概述: FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法FTP 服务器包的名称为 VSFTPD , 它代表 V ...

  3. cmd编译java时常见错误

    中文乱码 在执行javac时出现如图所示问题, 解决方法: 改用 javac -encoding UTF-8执行 找到路径:控制面板--系统和安全--系统--高级系统设置--环境变量--系统变量. 新 ...

  4. JSTL标签报错-http://java.sun.com/jsp/jstl/core

    考虑为tomcat缺少相关的包 导入就好了 导入jstl-api-1.2.jar 以及standard-1.1.2.jar 然后重启服务 更多java学习,请进本人小博客-https://zhangj ...

  5. Windows系统一些好用的办公工具

    在日常办公过程中,总有一些工具令人觉得方便,提高了工作效率.以下是根据我的习惯,收集了一些好用的工具,在此记录且不定期更新. 文件名 说明 Everything 文件搜索工具,搜索速度快 ALTRun ...

  6. msf宏钓鱼

    kali下载python脚本,生成rtf文件: 下载脚本:git clone https://github.com/bhdresh/CVE-2017-8759.git 生成rtf文件: python ...

  7. 使用 mysql 的 Docker 镜像

    使用 mysql 的 Docker 镜像 前言 之前搞了很多都是手工在操作系统的镜像中安装使用 mysql,作为自己折腾也就算了,作为实际使用实为不妥:Docker最重要的特性就是可扩展性,把各种程序 ...

  8. CURL的模拟登录和抓取页面

    <?php $curl = curl_init();// 初始化 // 准备提交的表单数据之账号和密码.(这个是根据表单选项来的) $data = "_username=6049892 ...

  9. ecshop transport.js IE报错(608行),对象不支持此属性或方法 的解决办法

    解决办法: 将if (this.hasOwnProperty(k)) { 改为: if (this.hasOwnProperty && this.hasOwnProperty(k)) ...

  10. Java学习之随堂笔记系列——day03

    内容回顾:1.标识符和类型转换    1.1 标识符:给类.方法.变量取得名字就是标识符.        命名规则:            1.必须是字母.数字._.$组成            2. ...