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(),该函数只负责获取并存储新用户的用户名。要编写出清晰而易于维护和扩展的代码,这种划分必不可少。

浙公网安备 33010602011771号