46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
# Exercise 10-13 User Dictioinary
|
|
# Learning Objective: Save/Load json using json dumps/loads.
|
|
|
|
from pathlib import Path
|
|
import json
|
|
|
|
def get_stored_info(path):
|
|
"""Get stored username if available."""
|
|
if path.exists():
|
|
contents = path.read_text()
|
|
information = json.loads(contents)
|
|
return information
|
|
else:
|
|
pass
|
|
|
|
def get_information(path):
|
|
"""Prompt for information."""
|
|
data = {
|
|
|
|
}
|
|
username = input("What is your name? ")
|
|
location = input("What country/state are you in? ")
|
|
age = input("How old are you? ")
|
|
data["username"] = username
|
|
data["location"] = location
|
|
data["age"] = age
|
|
save_data = json.dumps(data)
|
|
path.write_text(save_data)
|
|
return data
|
|
|
|
|
|
def greet_user():
|
|
"""Greet the user by name."""
|
|
path = Path('user_info.json')
|
|
information = get_stored_info(path)
|
|
if information:
|
|
print(f"Welcome back, {information["username"]}! We remember that you are from {information["location"]} and that you are {information["age"]} years old since the last time you ran this.")
|
|
else:
|
|
entered_data = get_information(path)
|
|
print(f"We'll remember this information for when you come back, \n")
|
|
for i in entered_data:
|
|
print(f"{entered_data[i]}")
|
|
|
|
greet_user()
|
|
|