调用__write_user函数,写入json文件中的"create_time","update_time"为什么不是格式化的字符串
if __name__ == '__main__':
# 获取gift.json和user.json的路径
gift_path = os.path.join(os.getcwd(), 'storage', 'gift.json')
user_path = os.path.join(os.getcwd(), 'storage', 'user.json')
# print(gift_path, user_path)
# 实例化
base = Base(user_json=user_path, gift_json=gift_path)
base._Base__write_user(username='dewei', role='admin') # 调用私有函数,写入一个user信息
print(base._Base__read_users()) # 调用私有函数,读出一个user信息
'''读出JSON文件,如果time_to_string=True则将时间戳转换成格式化字符串'''
def __read_users(self, time_to_string=True):
with open(self.user_json, 'r')as f:
# 反序列化,返回原始数据类型
data = json.loads(f.read())
if time_to_string is True:
for username, value in data.items():
value['create_time'] = timestamp_to_string(value['create_time'])
value['update_time'] = timestamp_to_string(value['update_time'])
data[username] = value
return data # 字典
# 写入user的相关信息
def __write_user(self, **user):
# **user:将有参数与默认值的赋值语句合并成字典
if 'username' not in user:
raise ValueError('Missing username')
if 'role' not in user:
raise ValueError('Missing role')
# 默认active为True
user['active'] = True
# 初始的创建时间和更新时间相同
user['create_time'] = time.time()
user['update_time'] = time.time()
# 默认gifts为空列表
user['gifts'] = []
""""
users来自user.json文件
{username:{username:xxx,role:xxx,active:xxx,...}}
username为key来检索用户信息
user来自参数**user
{username:xxx, role:xxx, active:xxx,...}
"""
users = self.__read_users(time_to_string=True) # 返回字典
'''如果将要添加的username已存在user.json文件中'''
if user['username'] in users:
raise UserExistsError('username %s had exists' % user['username'])
# 写入
users.update(
{user['username']: user}
)
# 序列化并写入
json_users = json.dumps(users)
with open(self.user_json, 'w')as f:
f.write(json_users)
13
收起
正在回答 回答被采纳积分+1
2回答
Python全栈工程师2020
- 参与学习 人
- 提交作业 5229 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星