写点什么

Python 基础库 -json 库

  • 2022-11-28
    北京
  • 本文字数:1812 字

    阅读完需:约 6 分钟

1 JSON 介绍

JSON 的全称是 JavaScript Object Notation",是 JavaScript 对象表示法, 它是一种基于文本,独立于语言的轻量级数据交换格式。


json 文件:


●一般是定义数据使用的

●在互联网传递数据的时候很常见的一种文件格式

●所有数据用- -对大括号括起来

●大括号内部是键值对,键和值用冒号分隔

●多个键值对用逗号分隔

●字符串用双引号

●数字不需要引号

●列表用空括号

●对象用大括号


{  "name": "tom",  "age": "20",  "addr": [1,2,3]}
复制代码

1.1 json 介绍

json基于文本,独立于语言的轻量级的数据交换格式-基于文本,是一个文本文件-独立于语言,不是某个语言特有的,每种编程语言都可以使用的-轻量级,相同的数据,和其他格式相比,占用的大小比较小-数据交换格式,后端程序员给前端的数据(json,html xml 等)
复制代码

1.2 json 特点

1.JSON是纯文本2.JSON具有良好的自我描述性,便于阅读和编写3.JSON具有清断的层级结构4.有效地提升网络传输效率
复制代码

1.3 json 文件的处理

json 文件也是一个文本文件,就可以直接使用read( )和write() 方法去操作文件,只是使用这两个方法,不方便,所以对json文件有自己独特的读取和写入的方法
常用在在做测试的时候,将测试数据定义为json 文件格式,使用代码读取json文件,即读取测试数据,进行传参(参数化)
复制代码



1.4 json 语法规则

-大括号保存对象-中括号保存数组-对象数组可以相互嵌套-数据采用键值对标识-多个数组由逗号分隔
复制代码


1.json 文件的后缀为 .json2.json 中主要数据类型为 对象({} 类似 python 中 字典) 和 数组([] 类似 python 中的列表),对象和数组可以互相嵌套3.一个json 文件是一个对象或者数组( 即 json 文件的最外层要么是一个{},要么是一个数组[])4. json中的对象是由键值对组成的,每个数据之间使用逗号隔开,但是最后一个数据后边不要写逗号5. json中的字符串必须使用双引号6. json中的其他数据类型>数字类型----> int float> string字符串 ---> str>布尔类型true, false -----> True, False>null ----> None
复制代码

1.5 json 键

JSON 的键必须是字符串类型,用英文双引号扩起来

1.6 json 文件的书写

需求:我叫小明,我今年18岁,性别男,爱好听歌,游戏,购物,吃饭,睡觉,打豆豆,我的居住地址为国家中国,城市北京
ptyhon -字典json -对象
复制代码


{  "name": "小明",  "age": 18,  "isMen": true,  "like": [    "听歌",    "游戏",    "购物",    "睡觉",    "打豆豆"  ],  "address": {    "country": "中国",    "city": "北京"  }}
复制代码


<font color=red>ctrl + alt + L 可以格式化语法</font>

1.7 读取 json 文件的方法(json. load)

●第一步要导入 json 模块。import json●第二步打开 json 文件。json 中有中文,一般字符集都是 utf8,打开文件的时候要指定字符集为 utf8。open(ison 文件名, "r", encoding="utf8")●第三步:调用 json 模块的 load 方法,读取文件内容。data = json.load(file)●第四步:关闭 open 打开的文件。file.close()


1.导包import json 2.读打开文件3.读文件json. load(文件对象)
#返回的是字典(文件中是对象)或者列表(文件中是数组)
复制代码


# 1, 导入 jsonimport json
# 2, 读打开文件with open('06.json', encoding='gbk') as f: # buf = f.read() # print(type(buf), buf) result = json.load(f) print(type(result)) # <class 'dict'> # 获取姓名 print(result.get('name')) # 获取年龄 print(result.get('age')) # 获取城市 print(result.get('address').get('city')) 输出结果:<class 'dict'>tom18北京
复制代码


案例 2


json 文件


{  "name": "tom",  "age": "20",  "addr": [1,2,3]}
复制代码


读取 json 文件


import json
file = open("06-2.json", encoding="utf8")data = json.load(file) # 把json文件的内容转换为python的字典file.close()print(data)
执行结果:{'name': 'tom', 'age': '20', 'addr': [1, 2, 3]}
复制代码


import json
file = open("06-2.json", encoding="utf8")data = json.load(file) # 把json文件的内容转换为python的字典file.close()# print(data)for n in data: print(n, data[n]) 执行结果:name tomage 20addr [1, 2, 3]
复制代码

1.8 操作 json 文件常见错误

错误 1:json 格式错误


json.decoder.JSONDecodeError
复制代码


错误 2:扩展名不是 json,是其他的


json文件的扩展名必须是. json
复制代码


错误 3:自己创建了一个文件名叫 json.py


Attri buteError: module'json' has no attribute '1oad'
复制代码


发布于: 刚刚阅读数: 2
用户头像

一边做一边变得优秀,加油呀 2022-09-19 加入

大家好,我是小鱼新人来报道哈。 CSDN,阿里云专家.....

评论

发布
暂无评论
Python基础库-json库_11月月更_度假的鱼🐟_InfoQ写作社区