APP-ENGINE从静态json文件加载数据或将数据加载到数据存储区?

时间:2017-05-09 15:34:41

标签: json google-app-engine google-cloud-datastore app-engine-ndb google-app-engine-python

我是app-engine的新手。写一个休息api。想知道以前是否有人处于这种困境中?

我拥有的这些数据不多(3到4页),但每年都会发生变化。

选项1:将数据写为json,并在每次请求进入时解析json文件。

选项2:模拟对象并投入数据存储区,然后在请求进入时检索它们。

有没有人知道每种方法的优缺点或任何更好的解决方案(如果有的话)。

1 个答案:

答案 0 :(得分: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