python - Json 与 SQL 建议

标签 python sql json

除了 python,我没有太多编程经验,我正在开始一个项目,该项目将按城市/国家、日期和时间存储信息。我以前使用过 simplejson 并发现它非常有用,特别是因为使用 python 对 json 数据进行排序是多么容易。

如果我使用 json,我会有一个包含 30 个不同键(针对每个城市/国家)的字典,然后对于每个国家或城市,我会将值作为一个新字典,其中日期作为键,它的值为将是另一本以时间为键的字典。每个时间键的值将是 10 个不同词典的列表(如果我没有说得更简洁,我很抱歉)。我计划将这些数据保留数年,数据主要只是文本。我不知道会有多少文字,但会有很多文字。数据将每小时更新几次。我将是唯一访问数据的人,我最终可能会将数据放到网上供人们查看。

所以数据结构可能看起来像这样:

data = {
  'Toronto, Canada': {
    '2011-05-04': {
      '00:30': [
        { ... },
        { ... },
        ...
      ],
      '02:00': [
        ...
      ],
      ...
    },
    '2011-05-05': {
    },
    ...
  },
  'Tokyo, Japan': {
    ...
  },
  ...
}

我开始自学 SQL,但有人会推荐什么?我应该创建上面描述的 json 结构(或一些更改版本,我愿意接受任何建议)还是应该通过 SQL 创建数据库?

此外,我将使用不同的 Python 函数分析数据,因此我不知道这是否会影响任何建议。

最佳答案

JSON 用于在同一台机器上或通过网络在进程之间交换少量数据。您需要一个数据库。

如果使用 JSON,则需要先将整个结构读入内存,然后才能查询或更新它。您需要在每次更新后将所有内容写回磁盘(否则可能会在电源出现故障时丢失数据)。您会发现使用 SQL 分析数据比使用 JSON 容易得多。

一些建议:

(1)使用SQLite(Python自带)

(2) 考虑将城市和国家作为单独的列。考虑添加“州/省”列。

(3) 考虑日期和时间是否应该是一个“时间戳”列。

(4) 除了说它是“10 部词典的列表”之外,您没有提供任何有关实际数据的详细信息。您需要确定(并且可能想寻求帮助)的事情是:该列表真的是一个集合吗?如果真的是一个列表,那么这个列表下标是什么意思呢?是否预先知道所有可能的字典键(以及有多少),或者它们是可变数据?这些答案将影响您设计表格的方式。

关于python - Json 与 SQL 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928921/

相关文章:

python - Pyglet无限循环播放音频

sql - COUNT张不同的面孔

sql - 与 Oracle "ALTER SYSTEM SET"命令相反

javascript - d3js 在多个图表之间切换

javascript - 以表格格式显示来自 XML 和 JSON 的数据

json - 在 Firebase 上部署 React 应用时出现 "EACCES: permission denied"

python - PyQt 主窗口与对话框

python - 如何获得在另一个函数中调用的函数以返回值? PYTHON

python - memcache GAE 中的静态首页

sql - 定义中的 SQLite 3 类型名称和关键字是否区分大小写?