Python 存储数据-json

10.4.1 使用json.dump()和json.load()

写入json

import json

file = 'number.json'
number = [2, 3, 4, 5, 6, 7, 88]

with open(file, 'w') as f:
    json.dump(number, f)

 

读取json

import json

file = 'number.json'

with open(file) as f:
    content = json.load(f)

print(content)

 

如果文件中有名字记录,则 打印一条 欢迎信息 ,如果没有则将该名字保存到文件中

file = 'number.json'

try:
    with open(file) as f:
        name = json.load(f)

except FileNotFoundError:
    name = input("What's your name?:")
    with open(file, 'w') as f:
        json.dump(name, f)
else:
    print(f'Welcome {name}')

 

10.4.3 重构

你经常会遇到这样的情况:代码能够正确地运行,但通过将其划分为一系列完成具体工作的函数,还可以改进。这样的过程称为重构。重构让代码更清晰、更易于理解、更容易扩展。

import json

def get_stored_username():
    """如果存储了用户名,就获取它。"""
    filename = 'username.json'
    try:
        with open(filename) as f:
            username = json.load(f)
    except FileNotFoundError:
        return None
    else:
        return username


def get_new_username():
    """提示用户输入用户名。"""
    username = input("What is your name? ")
    filename = 'username.json'
    with open(filename, 'w') as f:
        json.dump(username, f)
    return username


def greet_user():
    """问候用户,并指出其名字。"""
    username = get_stored_username() 
    if username:
        print(f"Welcome back, {username}!")
    else:
        username = get_new_username() 
        print(f"We'll remember you when you come back, {username}!")


greet_user()

 

在上面的这个函数例子中,这个最终版本中,每个函数都执行单一而清晰的任务。

  我们调用greet_user(),它打印一条合适的消息:要么欢迎老用户回来,要么问候新用户。

  为此,它首先调用get_stored_username(),该函数只负责获取已存储的用户名(如果存储了的话)。

  最后在必要时调用get_new_username(),该函数只负责获取并存储新用户的用户名。要编写出清晰而易于维护和扩展的代码,这种划分在以上这个了例子这个最终版本中,每个函数都执行单一而清晰的任务。我们调用greet_user(),它打印一条合适的消息:要么欢迎老用户回来,要么问候新用户。为此,它首先调用get_stored_username(),该函数只负责获取已存储的用户名(如果存在的话)。最后在必要时调用get_new_username(),该函数只负责获取并存储新用户的用户名。要编写出清晰而易于维护和扩展的代码,这种划分必不可少。

 

posted @ 2021-09-24 11:07  茶叶蛋蛋  阅读(71)  评论(0)    收藏  举报