APP-ENGINE 从静态 json 文件加载数据还是将数据加载到数据存储区?
APP-ENGINE load data from static json file or load data into the datastore?
我是应用引擎的新手。写作休息api。想知道以前是否有人遇到过这种困境?
我拥有的这些数据并不多(3 到 4 页),但每年都会变化。
方案一:把数据写成json,每次有请求进来解析json文件
选项 2:建模为对象并放入数据存储区,然后在有请求时检索它们。
有谁知道每种方法的优缺点或更好的解决方案(如果有)。
当然要看情况了。
以下是我在做决定时会问自己的一些问题 -
- 是否要根据代码推送对数据进行更改?
- 数据中是否存在不应签入 VCS 的敏感信息
- 您系统的哪些其他部分依赖于此数据
- 您对数据的假设在更新频率和大小方面发生变化的可能性有多大
假设数据很小 (<1MB) 并且其中没有敏感信息,我会开始加载 JSON 文件,因为它是最简单的解决方案。
您不必解析每个请求的数据,但您可以在顶层解析一次并有效地将其视为常量。
类似的东西 -
import os
import json
DATA_FILE = os.path.join(os.path.dirname(__file__), 'YOUR_DATA_FILE.json')
with open(DATA_FILE, 'r') as dataFile:
JSON_DATA = json.loads(dataFile.read())
然后您可以在代码中像使用字典一样使用 JSON_DATA
。
awesome_data = JSON_DATA['data']['awesome']
如果您需要在多个地方访问数据,您可以将其移动到它自己的模块中(例如 config.py
)并在任何需要的地方导入 JSON_DATA
。
例如。在 main.py
from config import JSON_DATA
# do something w/ JSON_DATA
我是应用引擎的新手。写作休息api。想知道以前是否有人遇到过这种困境?
我拥有的这些数据并不多(3 到 4 页),但每年都会变化。
方案一:把数据写成json,每次有请求进来解析json文件
选项 2:建模为对象并放入数据存储区,然后在有请求时检索它们。
有谁知道每种方法的优缺点或更好的解决方案(如果有)。
当然要看情况了。
以下是我在做决定时会问自己的一些问题 -
- 是否要根据代码推送对数据进行更改?
- 数据中是否存在不应签入 VCS 的敏感信息
- 您系统的哪些其他部分依赖于此数据
- 您对数据的假设在更新频率和大小方面发生变化的可能性有多大
假设数据很小 (<1MB) 并且其中没有敏感信息,我会开始加载 JSON 文件,因为它是最简单的解决方案。
您不必解析每个请求的数据,但您可以在顶层解析一次并有效地将其视为常量。
类似的东西 -
import os
import json
DATA_FILE = os.path.join(os.path.dirname(__file__), 'YOUR_DATA_FILE.json')
with open(DATA_FILE, 'r') as dataFile:
JSON_DATA = json.loads(dataFile.read())
然后您可以在代码中像使用字典一样使用 JSON_DATA
。
awesome_data = JSON_DATA['data']['awesome']
如果您需要在多个地方访问数据,您可以将其移动到它自己的模块中(例如 config.py
)并在任何需要的地方导入 JSON_DATA
。
例如。在 main.py
from config import JSON_DATA
# do something w/ JSON_DATA