肖sir__python模块之json
python标准模块之json
定义:json (java script object notation)是轻量级的文本数据交换格式
案例json:
json和字典 一样
一、json模块可以实现json数据的序列化和反序列化
(1)序列化:将可存放在内存中的python 对象转换成可物理存储和传递的形式
实现方法:load() loads()
(2)反序列化:将可物理存储和传递的json数据形式转换为在内存中表示的python对象
实现方法:dump() dumps()
查看 dump用法:ctrl+点击dump
===================================================
1、由python对象格式化成为json()dumps
案例1:将字典格式转化字符
j={'name':'zs','age':18,"no":["123","456"],"sex":"男"}
print(j)#{'name': 'zs', 'age': 18, 'no': ['123', '456'], 'sex': '男'}
print(type(j))#<class 'dict'>
jsonzfc=json.dumps(j,ensure_ascii=False)# 将一个字典转换称json
print(jsonzfc) #{"name": "zs", "age": 18, "no": ["123", "456"], "sex": "男"}
print(type(jsonzfc)) #<class 'str'>
备注:
1、python中的字典是单引号,字符是双引号
2、字典是大写True, 字符是小写
================================================
dump 方法:
定义:往文件中添加字符json
案例1:
j={'name':'zs','age':18,"no":["123","456"],"sex":"男","isonly":True}
print(j)
print(type(j))
jsonzfc=json.dumps(j,ensure_ascii=False)# 将一个字典转换称json
print(jsonzfc)
print(type(jsonzfc))
#dumps
json.dump(j,open("data.json","a"))
===================================================·
indent=4 indent 分隔符 ,排序
案例3:
结果:
{
"name": "zs",
"age": 18,
"no": [
"123",
"456"
],
"sex": "男",
"isonly": true
}
案例2:
================================
对json中字符 排序
sort_keys=True 排序;
=================================================================
三、 json string 转化称python对象
(1)字符类型转换成字典
import _json
json1='{"age": 18, "isonly": true, "name": "zs", "no": ["123", "456"], "sex": "男"}'
print(type(json1))
jsgs=json.loads(json1)
print(type(jsgs)) #<class 'dict'>
(2)字符类型转换成元组
案例:
json2='["a","b" ,{"no": 123, "sex": "男"}]'
print(type(json2))# <class 'str'>
listgs=json.loads(json2)
print(type(listgs)) #<class 'list'>
============================================
四、load文件转换成 对象方式
1、创建json格式:
{"age": 18, "isonly": true, "name": "zs", "no": ["123", "456"], "sex": "男"}
2、将 文件中的json通过load转换字典
import json
dxwj=json.load(open('aa.json','r',encoding="utf-8"))
print(type(dxwj))
print(dxwj)