作者:手机用户2502937333 | 来源:互联网 | 2023-10-12 11:56
一、定义
二、特点
1、JSON 与 XML格式数据的区别
 ======
- 两种格式的数据,都是跨语言,跨平台
- c、c++、java、php、python、go 等都能处理这两种格式
- Windows、Linux、Unix都能承载这两种格式
- json 更为清晰,冗余更少,更轻量级,传输效率更高
- xml 常常导致复杂的代码,极低的开发效率
- 对于大多数 web 应用来说,根本不需要复杂的 xml 来传输数据
2、json 结构
- 对象结构:键值对
- json 格式的数据,在 python 中是以字符串或者字节类来呈现
- json 格式数据,所有的 key 都是用“双引号”来包裹的
- “单引号”是不可以的
- value 数字可以不用双引号包裹
- 空值一定是 小写的 null
a = {
"key1": 12,
"key2": "value"
}
b = [
{
"key1": "value1",
"key2": "value2"
},
{
"key3": "value3",
"key4": "value4"
},
]
3、注意事项
- json 格式的数据,在 python 中以字符串形式呈现
- json 中的空为 null
- json 中除空和数字外,所有的 key 和 value 都是字符串,且一定要以双引号括起来
三、json数据格式与Python字典互相转换 ------ 为了获取数据方便
- loads()和load():
- loads() 是直接读取json格式的数据,并转换为字典型数据类型
- load() 是读取json文件,将从json文件对象中获取的json数据转换为字典型数据类型
- dumps()和dump():
- dumps() 是将字典型数据类型直接转换为json数据格式
- dump() 是将字典型数据类型转换为json数据格式后存放到json格式文件中
json.loads :(篓子)-- 将 json 格式的数据转化为-----Python中的字典类型
import json
# json格式的字符串 -- 字符串要写在同一行,外层使用单引号
data_json = '{"msg": "登录成功", "code": "10001", "data": null, "status": 1}'
# 将 json 格式的数据转化为 Python 中的字典类型
# 会将 json 格式空值null转化为 Python 中字典类型的空值 None
data_dict = json.loads(data_json, encoding='utf-8')
print(data_dict)
# 结果:
{'msg': '登录成功', 'code': '10001', 'data': None, 'status': 1}
json中的.dumps   : (当慕斯)Python中字典dict类型转化为-------json格式的数据
# 将python中字典类型转化为json格式的数据
# 会将 Python 中字典类型的空值 None 转换为 json 格式的空值 null
one_dict = {'name': '麦穗', "age": 18, "money": None}
# 记忆:宕机 --> dj(dict -- json)
# ensure_ascii=True 默认为 True 遇到中文进行编码,False 不进行编码
one_json = json.dumps(one_dict, ensure_ascii=False)
print(one_json)
# 结果:{"name": "麦穗", "age": 18, "money": null}
load() :(楼的)读取json文件中的json数据并转换为字典型的数据类型
import json
# 创建json格式的TXT文件,
# 内容为:{"msg": "登录成功", "code": "10001", "data": null, "status": 1}
# 第一种情况,读取json文件中的json数据并转换为字典型的数据类型
# mode 默认为="r",encoding 指定编码
with open("json_text.txt", encoding="utf-8") as file:
one_dict = json.load(file)
print(one_dict)
# 结果:{'msg': '登录成功', 'code': '10001', 'data': None, 'status': 1}
dump() :(当泼)将字典数据类型转换为json格式数据并存储到json格式的文件中
# 第二种,将字典数据类型转换为 json 格式数据并存储到json格式的文件中
two_dict = [{"one": {"name": "流年", "age": 20, "love": None}},
{"two": {"name": "阿登", "age": 25, "love": True}}]
# 使用上下文管理器 with
# ensure_ascii(恩数额儿_安斯k) 默认True,会进行编码;为如果是中文不进行编码使用 False
# indent (in den 特) 空两格美化
with open("write_json.txt", mode="w", encoding="utf-8") as one_file:
json.dump(two_dict, one_file, ensure_ascii=False, indent=2)
# 结果:
[
{
"one": {
"name": "流年",
"age": 20,
"love": null
}
},
{
"two": {
"name": "阿登",
"age": 25,
"love": true
}
}
]
 
 
 
 
 
 
 
 
 
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!*******