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