"""
本节课程内容 json
1.什么是json
2.掌握如何使用json进行数据转化
.json是一种轻量级的数据交互格式,可以按照json指定的格式去组织和封装数据
.json本质上是一个带有特定格式的字符串
json的主要功能:
.json就是一个在各个编程语言中流通的数据格式,负责在不同编程语言中进行数据传递和交互
.类似:国际通用语言--英语,中国不同名族不同地区通用语言--普通话
json格式数据转化:
#可以是这样
.{"name":"json":"age":18}
#也可以是这样
.[{"name":"json":"age":18}],{"name":"张三":"age":20}]
其实json就是一个字典,或者嵌套字典的列表,所以关于json来说,python还是有优势,可以无缝衔接json数据格式
"""
#-----json和python数据的相互转换演示
#json是一个模块,所以使用必须先导入
import json
#准备符合json格式要求的python数据(列表,字典都可以)这里以列表为例:
date=[{"name":"张三"},{"name":"李四"},{"age":30}]
print("当前类型是:",type(date)) #结果:当前类型是: <class 'list'>
#通过json.dumps()方法把python数据转为json数据
json_str=json.dumps(date)
print("json转换后类型是:",type(json_str)) #结果:json转换后类型是: <class 'str'>
print(json_str) #结果:[{"name": "\u5f20\u4e09"}, {"name": "\u674e\u56db"}, {"age": 30}]
#这时候它的字符串类型的值会出现一串代码,这是因为中文转换设计到编码问题。解决办法是在传入参数后面再传入一个参数
#提示:如果里面没有中文就不用加,ensure_ascii=False这个参数
json_str=json.dumps(date,ensure_ascii=False) #值为False,意思是不用ASCII转换它,直接输出内容
print(json_str) #结果:[{"name": "张三"}, {"name": "李四"}, {"age": 30}]
#准备符合python格式要求的json数据类型
s='[{"name": "张三"}, {"name": "李四"}, {"age": 30}]'
print("当前类型:",type(s)) #结果:当前类型: <class 'str'>
d='{"name": "张三","name": "李四","age": 30}'
print("当前类型:",type(d)) #结果:当前类型: <class 'str'>
#通过json.loads()方法把json数据转为python数据
py_l=json.loads(s)
print(type(py_l)) #结果:<class 'dict'>
py_d=json.loads(d)
print(type(py_d)) #结果:<class 'dict'>
#感觉上json和python的字典列表没什么区别,但是不转为字典或列表的话就只是一个字符串,对其元素无法进行相应的处理
06-21
1298
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-02
183
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-20
406
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)