数据的存储——Json⽂件存储
JSON简介
python怎么读取json文件Json,全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记,通过对象和数组的组合来表⽰数据,构造简洁但是结构化程度⾮常⾼,它是⼀种轻量级的数据交换格式,本节我们来了解⼀下利⽤ Python 保存数据到 Json ⽂件的⽅法。
1. 对象和数组
在 JavaScript 语⾔中,⼀切都是对象。因此,任何⽀持的类型都可以通过 Json 来表⽰,例如字符串、数字、对象、数组等。但是对象和数组是⽐较特殊且常⽤的两种类型。
对象,对象在 JavaScript 中是使⽤花括号 {} 包裹起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在⾯向对象的语⾔中,key 为对象的属性,value 为对应的值。键名可以使⽤整数和字符串来表⽰。值的类型可以是任意类型。
数组,数组在 JavaScript 中是⽅括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JavaScript 中,数组是⼀种⽐较特殊的数据类型,它也可以像对象那样使⽤键值对,但还是索引使⽤得多。同样,值的类型可以是任意类型。
所以⼀个 Json 对象可以写为如下形式:
由中括号包围的就相当于列表类型,列表的每个元素可以是任意类型,在⽰例中它是字典类型,由⼤括号包围。
Json 可以由以上两种形式⾃由组合⽽成,可以⽆限次嵌套,结构清晰,是数据交换的极佳⽅式。
2. 读取Json
Python 为我们提供了简单易⽤的 json 库来供我们实现 Json ⽂件的读写操作,我们可以调⽤ json 库的 loads() ⽅法将 Json ⽂本字符串转为Json 对象,可以通过 dumps()⽅法将 Json 对象转为⽂本字符串。
例如在这⾥有⼀段 Json 形式的字符串,它是 str 类型,我们⽤ Python 将可其转换为可操作的数据结构,如列表或字典。
通过中括号加 0 索引我们可以拿到第⼀个字典元素,然后再调⽤其键名即可得到相应的键值。在获取键值的时候有两种⽅式,⼀种是中括号加键名,另⼀种是 get() ⽅法传⼊键名。推荐使⽤ get() ⽅法来获取内容,这样如果键名不存在的话不会报错,会返回None。另外 get() ⽅法还可以传⼊第⼆个参数即默认值,我们⽤⼀个⽰例感受⼀下:
25
在上⾯我们尝试获取年龄 age,其实在原字典中是不存在该键名的,如果不存在,默认会返回 None,如果传⼊第⼆个参数即默认值,那么在不存在的情况下则返回该默认值。
值得注意的是 Json 的数据需要⽤双引号来包围,不能使⽤单引号。也就是
都是双引号。
否则
运⾏结果会报错
遇到这种情况,可以将单引号的str写⼊⼀个1.json⽂件中,然后读取出来即可,
⾃⼰按照⽼师的⽅法没有重复出来。
3. 输出Json
另外我们还可以调⽤ dumps() ⽅法来将 Json 对象转化为字符串。
例如我们将刚上例中的列表重新写⼊到⽂本。
利⽤ dumps() ⽅法我们可以将 Json 对象转为字符串,然后再调⽤⽂件的 write() ⽅法即可写⼊到⽂本,结果如下所⽰:
另外如果我们想保存 Json 的格式,可以再加⼀个参数 indent,代表缩进字符个数。
输出结果为,可见得到的内容会⾃动带有缩进,格式会更加清晰。
另外如果 Json 中包含中⽂字符,例如我们将之前的 Json 的部分值改为中⽂,再⽤之前的⽅法写⼊到⽂本。得到的中⽂结果为 Unicode 字符
可以指定ensure_ascii 为 False,且规定⽂件输出的编码为utf-8
结果为

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。