python - 应用程序版本控制:如何处理密钥演变?
问题描述
我有一个保存/加载文档的应用程序。我为我的应用程序中的每条信息提供了一个密钥。当我删除/创建密钥时,加载旧文档可能会崩溃,因此我必须精确地确定实际版本和所有更改以保持最新。
问题:我做这件事的方式很简单,但它需要很多时间,而且会变得非常庞大。关于应用程序/密钥演变的良好实践有什么要了解的吗?我觉得我错过了什么。
这是一个最小的视觉效果:
my_document = {
"metadata": {
"version": "1",
"creation_date": "08/08/2020"
},
"page_1": {
"name": "",
"age": ""
},
"page_2": {
"work": "",
"satisfaction_lvl": ""
}
}
def actual_version():
return "2"
def v1(_dict):
del _dict["page_3"]
del _dict["page_1"]["sex"]
_dict["page_1"]["nationality"] = ""
_dict["metadata"]["version"] = "2"
def update_info_dict(_dict):
if _dict["metadata"]["version"] == "1":
v1(_dict)
if _dict["metadata"]["version"] == actual_version():
print("document up-to-date")
解决方案
推荐阅读
- ruby - 第一次尝试安装 ruby 时出现错误。我在 macOS High Sierra
- node.js - 远程方法,查询和循环关系数据
- python - Python 请求:能够登录然后访问受身份验证限制的页面,但不能 POST 到页面
- java - 什么是八进制到十六进制的测试用例会使以下程序失败?
- php - php中数组中一周的开始和结束日期
- machine-learning - 测试误差小于训练误差
- python - 尝试使用 BeautifulSoup 访问 XML 中的嵌套元素
- react-native - 如何在方向更改时隐藏 React Native BottomTabNavigator(来自 React Navigation)?
- typescript - TypeScript 构造函数重载返回不同的类型
- apache-spark - 在 Pyspark 中按列使用 Windows 分区时排除列中的空值