import json
print(json.__all__) # 查看json 库里面所有的方法
# ['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']
dict1 = {"name": "cc", "age": 10}
print("未序列化的数据类型为:", type(dict1))
print("未序列化的数据:", dict1)
print("*"*30)
"""
输出:
['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']
未序列化的数据类型为:
未序列化的数据: {'name': 'cc', 'age': 10}
"""
xu_dict1 = json.dumps(dict1)
print("序列化后的数据类型为:", type(xu_dict1))
print("序列化后的数据:", xu_dict1)
print("*"*40)
"""
输出:
序列化后的数据类型为:
序列化后的数据: {"name": "cc", "age": 10}
"""
# 当有中文的时候会出现解析错误
dict2 = {"name":"cc", "address": "郑州"}
xu_dict2 = json.dumps(dict2)
print("未加ensure_ascii=False,序列化后的数据类型为:", type(xu_dict2))
print("ensure_ascii=False,序列化后的数据:", xu_dict2)
print("*"*50)
"""
输出:
未加ensure_ascii=False,序列化后的数据类型为:
ensure_ascii=False,序列化后的数据: {"name": "cc", "address": "\u90d1\u5dde"}
"""
dict2 = {"name":"cc", "address": "郑州"}
xu_dict3 = json.dumps(dict2, ensure_ascii=False)
print("加ensure_ascii=False序列化后的数据类型为:", type(xu_dict3))
print("加ensure_ascii=False序列化后的数据:", xu_dict3)
"""
输出:
加ensure_ascii=False序列化后的数据类型为:
加ensure_ascii=False序列化后的数据: {"name": "cc", "address": "郑州"}
"""
fan_json = json.loads(xu_dict3)
print("反序列化的数据类型:", type(fan_json))
print("反序列化后的数据: ", fan_json)
"""
输出:
反序列化的数据类型:
反序列化后的数据: {'name': 'cc', 'address': '郑州'}
"""
dict1 = {"name": "cc", "age": 10}
# json dump()用法, 将 数据保存在 json文件中
with open('data.json', 'w') as f:
json.dump(dict1, f)
# json load()用法, 将 从json文件中读取数据, 变成 python
with open('data.json', 'r') as f:
data = json.load(f)
print(type(data)) # 字典 python格式
print(data) # {'name': 'cc', 'age': 10}
with open('data.json', 'r') as f:
print(type(f.read())) # 字符串 json格式, 用load() 函数加载得到的是 字典对象
dict1 = json.load(open("json 文件的路径")) # 读取json文件的一种方式