• 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模块相关推荐

  1. 初学者python笔记(json模块、pickle模块、xml模块、shelve模块)

    文章目录 json模块 正常数据转化(复杂) json模块的相关操作 pickle模块 shelve模块 xml模块 在Python中,json模块.pickle模块.xml模块.shelve模块这四 ...

  2. python存储数据的操作(csv格式文件,Excel表格文件)!!!

    python存储数据 存储数据的方式 两种存储数据方式的区别 csv格式文件 Excel格式文件 csv文件的写入 csv文件的读取 Excel基本概念 Excel文件的写入 Excel文件的读取 存 ...

  3. python存储数据list_Python存储数据的方式

    在Python开发中,数据存储.读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件.csv文件.MySQL数据库.Redis数据库以及Mongdb数据库等. 1. json文 ...

  4. python数据数据存储-Python存储数据的方式

    在Python开发中,数据存储.读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件.csv文件.MySQL数据库.Redis数据库以及Mongdb数据库等. 1. json文 ...

  5. python json loads_如何区别python中的json模块loads和load方法

    在python中的json模块,有一对方法load()和loads(),其中load()方法是从json文件读取json,而loads()方法是直接读取json,两者都是将字符串json转换字典对象. ...

  6. python内置json模块_python的常用内置模块之序列化模块json

    #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. '''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现在我们能想到的方法就是存在文 ...

  7. Python 中的json模块dumps参数详解

    1.什么是JSON 维基百科中的定义: JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计.轻量级的资料交换语言,该 ...

  8. python内置json模块的作用_python详解json模块

    我们在做工作中经常会使用到json模块,今天就简单介绍下json模块 什么是json JSON ,全称为JavaScript Object Notation, 也就是JavaScript 对象标记,它 ...

  9. python json模块详解_深入解析Python编程中JSON模块的使用

    JSON编码支持的基本数据类型为 None , bool , int , float 和 str , 以及包含这些类型数据的lists,tuples和dictionaries. 对于dictionar ...

最新文章

  1. 服务器用户没有读取权限,Windows找不到文件或没有读取权限怎么办
  2. 失败原因_解析干洗店失败原因
  3. C#利用Graphics类绘制进阶--绘制条形码Code128
  4. 如果你的男朋友使用linux
  5. DNS信息探测工具DNSRecon常用命令
  6. 通过100个单词掌握英语语法(十六) come
  7. 史上最怂黑客?新病毒从上线到“自首”只勒索到五块钱,最后主动提交了密钥...
  8. NetBeans 时事通讯(刊号 # 89 - Jan 28, 2010)
  9. SAP UI5 Web Component里如何自定义CSS style
  10. scala 函数中嵌套函数_如何在Scala中将函数转换为部分函数?
  11. ExtJS 异步加载树节点
  12. php安装mongo扩展,php安装mongo扩展和mongodb扩展
  13. 已经被说“烂”的微服务,到底是个什么鬼?通过拆分实战案例来带你入门。...
  14. 浪潮java面经总结
  15. 基于Matlab App Designer的语音信号分析与处理(一):语音信号的采集,时域、频域分析
  16. Office Word 目录制作页码右对齐方法
  17. ms17-010永恒之蓝使用和防范(内附视频)
  18. PS作业 不一样的我
  19. 最后聊聊:备案需要注意的地方和域名的解析
  20. react 使用 useEffect 及踩坑

热门文章

  1. 【C/C++】isalpha、islower、isupper、isalnum、isblank、isspace函数cctype / ctype.h头文件
  2. Android之蚂蚁森林能量水滴效果
  3. 线性回归-多元线性回归
  4. Jetbrains系列软件高版本闪退问题解决
  5. Java训练work3.Exer4---学生成绩
  6. ACM数论----秦九昭算法
  7. 判断质数和合数python代码_「质数和合数」C语言:质数和合数的判断 - 金橙教程网...
  8. BZOJ1984: 月下“毛景树”
  9. iOS:友盟SDK第三方登录 分享及友盟统计的使用
  10. 设计模式之—建造者模式(Builder)-Java实现