1 Fork me on GitHub

python---内置库json

1. 前言

json:用于使用Json序列化和反序列化对象。
json是用于存储和交换数据的语法,是一种轻量级的数据交换格式。
使用场景:
  1. 接口数据传输  (主要是服务器和客户端之间的数据传输,包含请求体响应体等)
  2. 序列化             (很方便不同语言之间去进行数据的交换)
  3. 配置文件          (json可以做配置文件的数据格式,后面还有一种更适合数据文件配置)

测试过程中很多用到json格式,对json的处理。
在工作中,还有json在线解析器(百度)其实就是可以把JSON内容或JSON文件进行格式化解析,按JSON层级展现。

2. json结构

json基于两种基本的结构。

键值对:key 和 value 的格式。对应python当中的一个字典。
数组形式:对应python种的一个列表。中括号括起来的形式。每两个对象之间要用逗号进行分割。

3. python与Json数据类型对应

python与json里面的具体的数据类型不一样的,可以参考对照表。

如果直接拿python的字典去当Json用,或者直接把Json数据拿过来当python当字典或者当列表用其实是会出问题的,不能直接拿来用,它是需要转换之后才能被正常去使用的。

4. json库

居然知道要转换,那么怎么来转换?
Json要和python转换就需要用到内置的json库。json库它可以从我们的字符串或者文件当中去把我们的json解析出来,解析出来之后可以和python类型去进行对应的转换。

5. 常用方法

最常用的为下面种方法。`(*>﹏<*)′
注意区分加s和不加s的区别!!!!!!!看源码知加了s后多了个写入文件的操作fp;
加s转成字符串,跟字符串之间的一个相互转化;不加s是跟文件之间的相互转化。

 

第一种方法:dumps(),python转成json对象

python对象转json字符串。

import json

# 定义 python 结构, 是一个字典
data = {
    'a':1,
    'b':["2",'3'],
    'c':True,
    'd':False,
    'e':None
}
# 将我们的 python 字典对象编码为 Json 字符串
json_data = json.dumps(data)   # 调用dump方法,传入python对象,完成转换
print(json_data)    # 打印出来结果为:{"a": 1, "b": ["2", "3"], "c": true, "d": false, "e": null}

返回

 转换之后看看区别:
1. python中是使用的是单引号,json中标准是使用双引号;
2. 布尔值,python中布尔值是大写的,json中是小写的。
3. 空值,python中是None,json中是null。

 

第二种方法:loads(),json转成python对象

json字符串转换为python对象

import json

# 定义 JSON 字符串
json_data = """{"a": 1, "b": ["2", "3"], "c": true, "d": false, "e": null}"""

# 将 JSON 字符串转化为 Python 对象
python_data = json.loads(json_data)  # 调用loads方法
print(python_data)        # 打印
print(type(python_data))    # 类型也打印一下

打印之后:

 

第三种方法:dump(),写入文件

第三第四种方法,其实是处理相关的Json文件的。
python 对象转化为 json 格式的数据并且写入 json 文件

import json

data = {
    'a':1,
    'b':["2",'3'],
    'c':True,
    'd':False,
    'e':None
}

# 把python 对象转化为 json 格式的数据并且写入 json 文件
# 用with open方法。 当前目录下创建一个叫 data.json 文件,并对他进行写入
with open('data.json','w') as f:
    json.dump(data,f)   # 第一个传data,第二个传打开的这个f

# 传入之后可以把 data 转化为 json 格式数据,并且写入到 data.json 这个文件里面。

执行之后,打开新增的文件,可以看到文件成功新增写入:

 

第四种方法:load(),读取文件

接上面那个文件,
把上面 data.json 文件中的数据读取出来,并且转化为 python 数据对象。

import json
# 读取 json 文件,并且转化为 python 对象
with open('data.json','r') as f:
    data = json.load(f)  # 调用laod方法
    print(data)          # 打印查看
    print(type(data))

返回:

上面即可完成,把我们data.json这个文件的这个数据读取出来,并且转化为python对象。

 

tips:
上面4种方法是最基本的使用,这些方法还有很多有用的参数。可以扩展使用
PyCharm编辑器 在该类或方法上按住“ctr+鼠标左键”可以快速查看源代码。

6. 扩展

扩展主要是一参数的使用,先看代码:

import json

data = {
    'a':1,
    'b':'今天星期一',
    'c':True,
    'd':False,
    'e':None
}

json_data = json.dumps(data,ensure_ascii=False,indent=4)
print(json_data)

返回如下:

这里存在中文,如果是Ture会显示字母方式!!!
这里即转换成功,下面看看源码。......下面......q(≧▽≦q)😊😊😊😊.................↓

 

举个栗子,dumps方法,打开该方法源码,
看看这个源码,里面有很多参数可以使用,最常用为这两个

 

posted @ 2022-07-05 00:55  v_jjling  阅读(77)  评论(0编辑  收藏  举报
AmazingCounters.com