JSON实现序列化dump和dumps方法,JSON实现反序列化loads和load方法
import json
file = open('names.txt', 'w')
names = ['zhangsan', 'lisi', 'wangwu', 'jerry', 'henry', 'merry', 'chris']
# file.write(names) 出错,不能直接将列表写入到文件里
# 可以调用 json的dumps方法,传入一个对象参数
result = json.dumps(names)
# dumps 方法得到的结果是一个字符串
print(type(result)) # <class 'str'>
# 可以将字符串写入到文件里
file.write(result)
file.close()
import json
file = open('names.txt', 'w')
names = ['zhangsan', 'lisi', 'wangwu', 'jerry', 'henry', 'merry', 'chris'] # dump方法可以接收一个文件参数,在将对象转换成为字符串的同时写入到文件里
json.dump(names, file) file.close()
import json
# 调用loads方法,传入一个字符串,可以将这个字符串加载成为Python对象
result = json.loads('["zhangsan", "lisi", "wangwu", "jerry", "henry", "merry", "chris"]')
print(type(result)) # <class 'list'>
import json # 以可读方式打开一个文件
file = open('names.txt', 'r') # 调用load方法,将文件里的内容加载成为一个Python对象
result = json.load(file) print(result)
file.close()
一些操作
# fp = open('test.txt','w')
# # 默认情况我们只能将字符串写入到文件中
# fp.write('hello world')
#
# fp.close()
# fp = open('test.txt','w')
# # 默认情况下报错 对象是无法写入到文件中 如果想写入到文件 那么必须使用序列化操作
# name_list = ['zhangsan','lisi']
#
# fp.write(name_list)
-----------------------------------------------------------------------------------------
# 序列化的2种方式
# dumps
# (1)创建一个文件
# fp = open('test.txt','w')
#
# # (2)定义一个列表
# name_list = ['zs','ls']
#
# # 导入json模块到该文件中
# import json
# # 序列化
# # 将python对象 变成 json字符串
# # 我们在使用scrapy框架的时候 该框架会返回一个对象 我们要将对象写入到文件中 就要使用json.dumps
# #操作数据
# names = json.dumps(name_list)
# print(name) #['zs', 'str']
# print(type(name)) # <class 'str'>
# # 将names写入到文件中
# fp.write(names)
# fp.close()
------------------------------------------------------------------------------------------
# dump
# 在将对象转换为字符串的同时,指定一个文件的对象 然后把转换后的字符串写入到这个文件里
# fp = open('text.txt','w')
# #
# # name_list = ['zs','ls']
# #
# # import json
# # 相当于names = json.dumps(name_list) 和 fp.write(names)
# # 操作文件
# # json.dump(name_list,fp)
# #
# # fp.close()
--------------------------------------------------------------------------------------------
# 反序列化
# 将json的字符串变成一个python对象
# fp = open('text.txt','r')
#
# content = fp.read()
#
# # 读取之后 是字符串类型的
# print(content) #['zs', 'ls']
# print(type(content)) # <class 'str'>
#
# # loads
# import json
# # 将json字符串变成python对象
# 操作数据
# result = json.loads(content)
# # 转换之后
# print(result) #['zs', 'ls']
# print(type(result)) # <class 'list'>
--------------------------------------------------------------------------------------------
# load
fp = open('text.txt','r')
import json
# 操作文件
result = json.load(fp)
print(result) # ['zs', 'ls']
print(type(result)) # <calss 'list'>
fp.close()
JSON实现序列化dump和dumps方法,JSON实现反序列化loads和load方法的更多相关文章
- $(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法
$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法接触JQuery一般最先学到的是何时启动事件.在曾经很长一段时间里,在页面载入后引发的事件 ...
- 超高性能的json序列化之MVC中使用Json.Net
先不废话,直接上代码 Asp.net MVC自带Json序列化 /// <summary> /// 加载组件列表 /// </summary> /// <param na ...
- Json和序列化总结
一.序言 遇到问题,就经常逛园,不知你是否曾有,曾经遇到的问题,或者在园子里看到问题的方案,过一段时间,有可能还会摔跤,哈哈...大神请勿喷,小弟记忆不太好,还过来找资料,如果自己写把问题或某个知识点 ...
- JavaWeb_(Jar)使用fastjson解析json和序列化对象
菜鸟教程 传送门 JSON官网 传送门 fastjson插件下载 传送门 序列化[百度百科]:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对 ...
- 你真的了解load方法么?(转载)
本文授权转载,作者:左书祺(关注仓库,及时获得更新:iOS-Source-Code-Analyze) 因为 ObjC 的 runtime 只能在 Mac OS 下才能编译,所以文章中的代码都是在 Ma ...
- 【OC底层】Category、+load方法、+initialize方法原理
Category原理 - Category编译之后的底层结构是 struct categroy_t,里面存储着分类对象方法.属性.协议信息- 当程序运行时,通过runtime动态的将分类的方法.属性. ...
- Hibernate 中 load() 方法导致的 noSession 异常
之所以要写这个,是因为最近碰到了一个延迟加载的 load() 导致出现 noSession 的异常. 下面第三种方式解决这个问题需要用到一个本地线程的对象,也就是 ThreadLocal 类,之前写过 ...
- Hibernate中session回话的get方法和load方法的区别
1.报错方式不同: 前提:获取的数据不存在 get方法会报异常:空指针异常 load方法会报异常:对象为找到异常,给定值没有行存在. 2.load方法 这种方式总是会返回一个代理而不是真正得去查询数据 ...
- js进阶 14-2 如何用ajax验证登陆状态(这里用load方法)
js进阶 14-2 如何用ajax验证登陆状态(这里用load方法) 一.总结 一句话总结:$('#test').load('test.php?password=1234560'),这样就get方式提 ...
随机推荐
- Visaul Studio Code中提示 vue:无法加载vue.ps1,未对vue.ps1进行数字签名
Visaul Studio Code错误提示 错误如图: 解决办法 首先以管理员身份打开windows PowShell终端. 输入下面命令,如提示选择Y即可. get-help set-execut ...
- Django整理(二) - 视图和模板的初步使用
Django中的视图 · Django使用视图来编写web应用的业务逻辑 · Django的视图也就是一个函数,可称为视图函数 · 视图定义在应用的view.py文件中 · 视图需要绑定一个URL地址 ...
- dg create datafile auto failed 排除处理
1.Environment:11.2.0.4 dg 2.Symptoms:告警描述:Wed Sep 22 14:29:15 2021Errors in file /data/app/oracle/di ...
- 题解 CF1172E Nauuo and ODT
题目传送门 题目大意 给出一个 \(n\) 个点的树,每个点有颜色,定义 \(\text{dis}(u,v)\) 为两个点之间不同颜色个数,有 \(m\) 次修改,每次将某个点的颜色进行更改,在每次操 ...
- Java(1)开发环境配置及第一个程序Hello World
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201468.html 博客主页:https://www.cnblogs.com/testero ...
- Java(14)面向对象之封装
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201610.html 博客主页:https://www.cnblogs.com/testero ...
- Vue Router 常见问题(push报错、push重复路由刷新)
Vue Router 常见问题 用于记录工作遇到的Vue Router bug及常用方案 router.push报错,Avoided redundant navigation to current l ...
- VUE中v-for更新检测
口诀: 数组变更方法,就会导致 v-for 更新,页面更新 数组非变更方法:返回新数组,就不会导致 v-for 更新,更新值检测不到可采用覆盖或者 this.$set() 数组变更方法如下: 1. a ...
- Coursera Deep Learning笔记 深度卷积网络
参考 1. Why look at case studies 介绍几个典型的CNN案例: LeNet-5 AlexNet VGG Residual Network(ResNet): 特点是可以构建很深 ...
- Beta阶段第五次会议
Beta阶段第五次会议 时间:2020.5.21 完成工作 姓名 工作 难度 完成度 ltx 1.对小程序进行修改和美化新增页面(新增60行) 中 85% xyq 1.编写技术博客 中 85% xtl ...