python中的JSON(1)
很多程序都要求用户输入某种信息,
例如:
让用户存储游戏首选项或提供要可视化的数据,程序把用户的信息存储在列表和字典等数据结构中,
用户关闭程序时,我们几乎总要保存他们提供的信息;
如何保存——
一种简单的方式是使用模块json来存储数据。
JSON(JavaScript Object Notation)
模块json让我们能够将简单的python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
不仅如此,JSON还可以让我们在python程序之间分享数据,更重要的是JSON数据格式并非Python专用的,
JSON格式的数据可以与其他程序员使用其他脚本存储的方式互通。
json.dump() 保存文件
范例:
#!/usr/bin/env python
#filename = wr_num.py
import json
numbers = [1,2,3,4,5,6,7]
file_name = 'numbers.json' ①
with open(file_name, 'w') as f_obj: ②
json.dump(numbers , f_obj) ③
这段代码块中,首先导入了模块json,然后配置了一个list
在 ① 处,指定了这个要将这个列表存储的文件名:number.json
在 ② 处,通过w的方式打开文件,
在 ③ 处,通过函数json.dump()将数字列表存储到文件中
效果:
[root@Python-Test Alben-PY]# ./wr_num.py
[root@Python-Test Alben-PY]# more numbers.json
[1, 2, 3, 4, 5, 6, 7]
json.load() 读取文件
#!/usr/bin/env python
#filename = rd_num.py
import json
"""导入模块JSON"""
file = 'numbers.json'
"""定义文件"""
with open(file) as f_obj:
"""打开文件"""
numbers = json.load(f_obj)
#使用函数json.load()读取文件内容,并保存为变量 numbers
print(numbers)
效果:
[root@Python-Test Alben-PY]# ./rd_num.py
[1, 2, 3, 4, 5, 6, 7]
[root@Python-Test Alben-PY]#
小测试:
编写一个脚本,含如下功能
用户首次打开,提示输入名字,并告知用户该程序有记忆功能,下次打开可以直接问好。
代码:
#!/usr/bin/env python
import json
file = 'greet_name.json'
#定义存储名字的文件名
try:
with open(file) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
#如果文件不存在,默认会有一个TraceBack:FileNotFoundError#
#使用except后可以取消TraceBack,同时允许except中的代码块#
username = input("What is your name? \n:")
with open(file ,'w') as f_obj:
json.dump(username,f_obj)
print("We'll remember you when you come back, " + username + '!')
#这个代码块中就是与用户进行交互,要求输入名字
else:
print("Welcome back, " + username +'!')
#如果文件能够顺利打开,并且json.load()函数能够读取内容,则运行这段print#
效果如下:
[root@Python-Test Alben-PY]# ./rem_name.py
What is your name?
:alben
We'll remember you when you come back, alben!
[root@Python-Test Alben-PY]# ./rem_name.py
Welcome back, alben!
[root@Python-Test Alben-PY]#
可以看到,第一次运行的时候,会提示输入名字,
而第二次运行就直接welcome back了。这是因为第一次运行后生成了文件 greet_name.json
[root@Python-Test Alben-PY]# ll greet*
-rw-r--r--. 1 root root 7 May 15 08:01 greet_name.json
python中的JSON(1)的更多相关文章
- python中的 json 模块使用
(1)python 中生成 json 字符串: import json data = dict(ret=0, msg="Welcome, Login success!") json ...
- 在 Python 中使用 JSON
在 Python 中使用 JSON 本教程将会教我们如何使用 Python 编程语言编码和解码 JSON.让我们先来准备环境以便针对 JSON 进行 Python 编程. 环境 在我们使用 Pytho ...
- 【python】python中的json、字典dict
定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...
- Python中的json操作
Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...
- python中读取json文件报错,TypeError:the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
利用python中的json读取json文件时,因为错误使用了相应的方法导致报错:TypeError:the Json object must be str, bytes or bytearray,n ...
- python中的json的基本使用方法
在python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口, #!/usr/bin/env ...
- Python中的json学习
p.p1 { margin: 0; font: 14px ".PingFang SC"; color: rgba(53, 53, 53, 1) } p.p2 { margin: 0 ...
- python 中的json解析库
当一个json 数据很大的时候.load起来是很耗时的.python中常见的json解析库有cjson,simplesjson,json, 初步比较了一下, 对于loads来讲 simplejson ...
- 在Python中进行JSON转化
序列化,指的是把内存中的变量(如类的实例)变成可存储或可传输的过程. JSON(JavaScript Object Notation, JavaScript对象表示)是网络传输中经常使用的一种数据形式 ...
- Python中模块json与pickle的功能介绍
json & pickle & shelve 1. json的序列化与反序列化 json的使用需要导入该模块,一般使用import json即可. json的序列化 方法1:json. ...
随机推荐
- JDBC基础学习(五)—批处理插入数据
一.批处理介绍 当需要成批插入或者更新记录时.可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率. JDBC的批量处理语句包括下 ...
- 对比字节流和字符流,回答为什么FileReader不能用来拷贝图片
FileReader是输入字符流,拷贝文件没问题,但拷贝图片就有问题了. 假设是在windows下,FileReader用的是GBK码表,一个字符最多用2个字节代表.2个字节就是2的16次方,即有65 ...
- 开始使用ansible
ansible是一个设计巧妙,功能强大,安全,使用简单的IT自动化运维工具.它可以实现统一配置管理,持续部署,流程编排等. 目前控制主机必须是linux,被控制主机可以是linux,类UNIX和win ...
- iptables配置详解
iptables主要参数 -A 向规则链中添加一条规则,默认被添加到末尾 -T指定要操作的表,默认是filter -D从规则链中删除规则,可以指定序号或者匹配的规则来删除 -R进行规则替换 -I插入一 ...
- 读《effective C++》1
条款一:视C++为一个语言联邦 学习C++半个月了,学了他的面向过程编程,面向对象编程(封装性,继承性,多态性),template泛型编程,开始只是觉得C++基础是面向对象,但是学了这么多块开始有点迷 ...
- javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之一 基础Struts框架搭建篇
即将开始着手写这个项目,所以希望通过这篇博客来记录自己学习的过程 今天开学第一天,就上了软件工程实践课,自己也开始着手做这个大作业了.首先我的项目名称叫做智能班车管理系统. 项目的概况: 该软件产品是 ...
- Unix系统操作指令汇总
一.目录及文件操作命令 1.1 ls 语法: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件--] 说明: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺 ...
- ajax从新浪获取实时股票数据
最近在给公司做一个报表展示,然后领导要求上面加上一些股票的实时数据展示. 一开始同事给我一个聚合数据的网址,说从这上面可以获取到.我一看,哟呵,API接口什么的都提供好了,确实方便.然后想用的时候才发 ...
- selenium+python
最近在学习selenium自动化测试,但是一直遇到一个问题,总是打不开指定的网址,今天突然成功了, 主要原因是因为selenium版本太低的缘故,所以只需要在终端输入:pip install -U s ...
- JavaScript常用的方法和函数(setInterval和setTimeout)
1.setInterval:计时器 可以按照指定的周期(以毫秒为单位)来调用函数或计算表达式 调用格式:setinterval(fun,time) 说明:fun为函数体,time为数值,这两个参数是必 ...