Python3 json模块
目录
要想以json格式来存储数据,需要使用json模块。
使用json模块前需要先导入模块,即import json。
使用json可以将简单的Python数据结构(如:列表,字典等)存储到文件中。
json.dump()和json.load()
使用json.dump()来存储数据,json.load()读取数据到程序中:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import json
numbers = [1, 2, 3, 4, 5, 6]
file_name = 'numbers.json' # 通常使用扩展名.json来指出文件存储的数据格式为json
with open(file_name, 'w') as file_object: # 以写入模式打开文件
json.dump(numbers, file_object) # json.dump()存储列表到文件
with open(file_name) as file_object: # 默认以只读模式打开文件
n_numbers = json.load(file_object) # json.load()读取数据
print(n_numbers) # n_numbers所指对象的数据类型是list
json.dump()接受两个参数:第一个是要存储的数据;第二个是用于存储数据的文件对象。
通常使用扩展名.json来指出文件存储的数据格式为json。
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import json
def read_user(file_name):
"""从文件中读取用户的姓名"""
with open(file_name) as f_obj:
user_name = json.load(f_obj)
return user_name
def remember_user(file_name):
"""存储首次使用本程序的用户的姓名"""
print("您是首次使用本程序,需要填写相关信息。")
name = input("请输入您的姓名;")
with open(file_name, 'w') as f_obj:
json.dump(name, f_obj)
print("我们会在您下次使用本程序时记住您的姓名。")
def greet_user():
"""用户使用程序时向用户发出问候"""
try:
file_name = 'user.json'
user_name = read_user(file_name)
except FileNotFoundError:
remember_user(file_name)
else:
print("welcome back! hello " + user_name + "!")
greet_user()