什么是json
- JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据 。
- JSON本质上是一个带有特定格式的字符串
- 主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互. 类似于:
- 国际通用语言-英语
- 中国56个民族不同地区的通用语言-普通话
json有什么用
- 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典。
为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。如下图,以Python和C语言互传数据为例:
json格式数据转化
- json格式数据转化
# json数据的格式可以是: {"name": "admin", "age": 18} # 也可以是: [{"name": "admin", "age": 18}, {"name": "root", "age": 16}, {"name": "张三", "age": 20}]
Python数据和Json数据的相互转化
- Python数据和Json数据的相互
# 导入JSON模块 import json # 准备列表,列表内每一个元素都是字典,将其转换为JSON data = [{'name': "张三", 'age': 12}, {'name': "李四", 'age': 20}, {'name': "赵武", 'age': 32}] # 使用ensure_ascii='False' 表示不使用Ascii转换中文 # 使用ensure_ascii='True' 表示使用Ascii转换中文 json_str = json.dumps(data, ensure_ascii=False) print(type(json_str)) print(json_str) # 准备字典,将字典转换为JSON data = {'name': "张三", 'age': 12} json_str = json.dumps(data, ensure_ascii=False) print(type(json_str)) print(json_str) # 将JSON字符串转换Python数据类型[{k: v, k: v}, {k: v, k: v}] s = '[{"name": "张三", "age": 12}, {"name": "李四", "age": 20}, {"name": "赵武", "age": 32}]' l = json.loads(s) print(type(l)) print(l) # 将JSON字符串转换Python数据类型{k: v, k: v} s = '{"name": "张三", "age": 12}' l = json.loads(s) print(type(l)) print(l) 结果: <class 'str'> [{"name": "张三", "age": 12}, {"name": "李四", "age": 20}, {"name": "赵武", "age": 32}] <class 'str'> {"name": "张三", "age": 12} <class 'list'> [{'name': '张三', 'age': 12}, {'name': '李四', 'age': 20}, {'name': '赵武', 'age': 32}] <class 'dict'> {'name': '张三', 'age': 12}
总结:
1. json:是一种轻量级的数据交互格式, 采用完全独立于编程语言的文本格式来存储和表示数据(就是字符串)
Python语言使用JSON有很大优势,因为:JSON无非就是一个单独的字典或一个内部元素都是字典的列表
所以JSON可以直接和Python的字典或列表进行无缝转换。
2. json格式数据转化
通过 json.dumps(data) 方法把python数据转化为了 json数据
data = json.dumps(data)
如果有中文可以带上:ensure_ascii=False参数来确保中文正常转换
通过 json.loads(data) 方法把josn数据转化为了 python列表或字典
data = json.loads(data)