10.Python存储数据Json模块
json模块
用户关闭程序时,有些信息是需要保存的,一种简单的方式是使用模块json来存储数据。模块json让你能够将简单的python数据结构转存到文件中,并在程序再次运行时加载该文件中的数据。还可以使用json在python程序之间分享数据。
Json(Javascript object notation)格式最初视为JavaScript开发的,但随后成为一种常见格式,被包括python在内的众多语言采用。json.dump
json.dump接收两个参数:要存储的数据以及可用于存储数据的文件对象
import json
numbers=[2,3,5,7,11,13]
filename='numbers.json'
with open(filename,'w') as f_obj:json.dump(numbers,f_obj)
打开json文件,可以看到数据的存储格式与Python中相同。
- json.load
使用json.load将这个列表读取到内存中
import json
filename ='numbers.json'
with open(filename) as f_obj:numbers = json.load(f_obj)
print(numbers)
这是一种在程序之间共享数据的简单方式。
- 例子
用户在首次运行程序时被提醒输入自己的名字,再次运行程序时就可以记住他了。
先存储用户的名字
import json
username=input("What's your name? ")
filename='username.json'
with open(filename,'w') as f_obj:json.dump(username,f_obj)print("We'll remeber you when you come back, "+username+"!")
再编写一个程序向保存了名字的用户发出问候
import json
filename="username.json"
with open(filename) as f_obj:username=json.load(f_obj)print("Welcome back! "+username+"!")
将两个程序合并到一起,首先尝试恢复用户名,如果文件不存在,就提示用户输入用户名,并存储到文件中。
import json
filename="username.json"
try:with open(filename) as f_obj:username=json.load(f_obj)
except FileNotFoundError:username=input("What's your name? ")with open(filename,'w') as f_obj:json.dump(username,f_obj)print("We'll remeber you when you come back, "+username+"!")
else:print("Welcome back! "+username+"!")
如果程序是首次运行,则显示
如果不是第一次运行,则显示
- 重构
针对这样的情况:代码能够正确地运行,但是可做进一步的改进——将代码划分为一系列完成具体工作的函数。这样的过程被称为重构。
重构让代码更清晰、更易于理解、更容易扩展。(好使为什么要改。。。)
import jsondef get_stored_username(filename):try:with open(filename) as f_obj:username=json.load(f_obj)except FileNotFoundError:return Noneelse:return usernamedef get_new_username(filename):username=input("What's your name? ")with open(filename,'w') as f_obj:json.dump(username,f_obj)return usernamedef greet_user(filename):username=get_stored_username(filename)if username:print("Welcome back! "+username+"!")else:username=get_new_username(filename)print("We'll remeber you when you come back, "+username+"!")myfilename='greetname.json'
greet_user(myfilename)
在重构完成的版本中,每一个函数都执行单一而清晰的任务。相互之间耦合很低,对的,正交是个好东西!
逻辑的梳理和模块的划分是很必要的工作。
10.Python存储数据Json模块相关推荐
- 初学者python笔记(json模块、pickle模块、xml模块、shelve模块)
文章目录 json模块 正常数据转化(复杂) json模块的相关操作 pickle模块 shelve模块 xml模块 在Python中,json模块.pickle模块.xml模块.shelve模块这四 ...
- python存储数据的操作(csv格式文件,Excel表格文件)!!!
python存储数据 存储数据的方式 两种存储数据方式的区别 csv格式文件 Excel格式文件 csv文件的写入 csv文件的读取 Excel基本概念 Excel文件的写入 Excel文件的读取 存 ...
- python存储数据list_Python存储数据的方式
在Python开发中,数据存储.读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件.csv文件.MySQL数据库.Redis数据库以及Mongdb数据库等. 1. json文 ...
- python数据数据存储-Python存储数据的方式
在Python开发中,数据存储.读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件.csv文件.MySQL数据库.Redis数据库以及Mongdb数据库等. 1. json文 ...
- python json loads_如何区别python中的json模块loads和load方法
在python中的json模块,有一对方法load()和loads(),其中load()方法是从json文件读取json,而loads()方法是直接读取json,两者都是将字符串json转换字典对象. ...
- python内置json模块_python的常用内置模块之序列化模块json
#什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. '''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现在我们能想到的方法就是存在文 ...
- Python 中的json模块dumps参数详解
1.什么是JSON 维基百科中的定义: JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计.轻量级的资料交换语言,该 ...
- python内置json模块的作用_python详解json模块
我们在做工作中经常会使用到json模块,今天就简单介绍下json模块 什么是json JSON ,全称为JavaScript Object Notation, 也就是JavaScript 对象标记,它 ...
- python json模块详解_深入解析Python编程中JSON模块的使用
JSON编码支持的基本数据类型为 None , bool , int , float 和 str , 以及包含这些类型数据的lists,tuples和dictionaries. 对于dictionar ...
最新文章
- 服务器用户没有读取权限,Windows找不到文件或没有读取权限怎么办
- 失败原因_解析干洗店失败原因
- C#利用Graphics类绘制进阶--绘制条形码Code128
- 如果你的男朋友使用linux
- DNS信息探测工具DNSRecon常用命令
- 通过100个单词掌握英语语法(十六) come
- 史上最怂黑客?新病毒从上线到“自首”只勒索到五块钱,最后主动提交了密钥...
- NetBeans 时事通讯(刊号 # 89 - Jan 28, 2010)
- SAP UI5 Web Component里如何自定义CSS style
- scala 函数中嵌套函数_如何在Scala中将函数转换为部分函数?
- ExtJS 异步加载树节点
- php安装mongo扩展,php安装mongo扩展和mongodb扩展
- 已经被说“烂”的微服务,到底是个什么鬼?通过拆分实战案例来带你入门。...
- 浪潮java面经总结
- 基于Matlab App Designer的语音信号分析与处理(一):语音信号的采集,时域、频域分析
- Office Word 目录制作页码右对齐方法
- ms17-010永恒之蓝使用和防范(内附视频)
- PS作业 不一样的我
- 最后聊聊:备案需要注意的地方和域名的解析
- react 使用 useEffect 及踩坑
热门文章
- 【C/C++】isalpha、islower、isupper、isalnum、isblank、isspace函数cctype / ctype.h头文件
- Android之蚂蚁森林能量水滴效果
- 线性回归-多元线性回归
- Jetbrains系列软件高版本闪退问题解决
- Java训练work3.Exer4---学生成绩
- ACM数论----秦九昭算法
- 判断质数和合数python代码_「质数和合数」C语言:质数和合数的判断 - 金橙教程网...
- BZOJ1984: 月下“毛景树”
- iOS:友盟SDK第三方登录 分享及友盟统计的使用
- 设计模式之—建造者模式(Builder)-Java实现