前言
很多程序都要求用户输入某种信息,程序一般将信息存储在列表和字典等数据结构中。
用户关闭程序时,就需要将信息进行保存,一种简单的方式是使用模块json来存储数据。
模块json让你能够将简单的Python数据结构转存到文件中,并在程序再次运行时加载该文件中的数据。
还可以使用json在Python程序之间分享数据,更重要的是,JSON(JavaScript Object Notation,最初由JavaScript开发)格式的数据文件能被很多编程语言兼容。
基本概念
1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
- json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
- json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)
2、json.dump()和json.load()主要用来读写json文件函数
1. json.dumps()
import json
# json.dumps()函数的使用,将字典转化为字符串
dict1 = {"age": "12"}
json_info = json.dumps(dict1)
print("dict1的类型:"+str(type(dict1)))
print("通过json.dumps()函数处理:")
print("json_info的类型:"+str(type(json_info)))
运行结果:
2. json.loads()
import json
# json.loads函数的使用,将字符串转化为字典
json_info = '{"age": "12"}'
dict1 = json.loads(json_info)
print("json_info的类型:"+str(type(json_info)))
print("通过json.dumps()函数处理:")
print("dict1的类型:"+str(type(dict1)))
3. json.dump()
import json
# json.dump()函数的使用,将json信息写进文件
json_info = "{'age': '12'}"
file = open('1.json','w',encoding='utf-8')
json.dump(json_info,file)
运行截图(1.json文件):
4. json.load()
import json
# json.load()函数的使用,将读取json信息
file = open('1.json','r',encoding='utf-8')
info = json.load(file)
print(info)
# {'age':'12'}
5. json的综合运用
import json
# list 转成Json格式数据
def listToJson(lst):
keys = [str(x) for x in np.arange(len(lst))]
list_json = dict(zip(keys, lst))
# # indent,格式化保存字典,默认为None,小于0为零个空格
str_json = json.dumps(list_json, indent=2, ensure_ascii=False) # json转为string
return str_json
rawList = [1, 3, 4, 7]
# 保存JSON
numbers = listToJson(rawList)
filename = "numbers.json" # 默认保存到根目录下,指定存储数据的文件名称
with open(filename, 'w') as file_obj:
json.dump(numbers, file_obj)
# 加载JSON
filename = "numbers.json"
with open(filename) as file_obj:
numbers = json.load(file_obj)
print(numbers) # 打印JSON
# 运行结果
"""
{
"0": 1,
"1": 3,
"2": 4,
"3": 7
}
"""
- rawList 通过listToJson函数将list转成Json格式数据;
- 用open函数打开numbers.json,调用json.dump( )存储数据;
- 只读模式打开文件;
- json.load( )加载文件中信息并存储到变量numbers中;
- 打印numbers中数字信息;
参考资料
博客园:python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分
脚本之家:Python如何存储数据到json文件