【问题标题】:JSON and Django fieldsJSON 和 Django 字段
【发布时间】:2014-02-21 14:34:50
【问题描述】:

在 Django 中存储字典的最佳方式是什么。是否有一种将整个 JSON 推送到字段中的本地方式,或者我应该尝试使用其他东西......人们推荐什么。我想尽可能保持标准的 Django。

【问题讨论】:

  • 顺便说一下我用的是 MySQL
  • 如果您对其中一个答案感到满意,请接受并投票。另外,你应该对你的“gold question”做同样的事情

标签: json django


【解决方案1】:

如果您使用的是 PostgreSQL,可以查看django-hstore

class Something(models.Model):
    name = models.CharField(max_length=32)
    data = hstore.DictionaryField()  # can pass attributes like null, blank, ecc.

instance = Something.objects.create(name='something', data={'a': '1', 'b': '2'})
assert instance.data['a'] == '1'

【讨论】:

    【解决方案2】:

    目前没有用于 MySQL 的特殊 JSON 数据类型。在我的一项工作中,我们使用了一个普通的文本/blob 字段。在将其写入数据库之前,我们对其进行压缩:

    >>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
    '[1,2,3,{"4":5,"6":7}]'
    

    当我们需要展示它时(如果你需要展示它?),我们会打印出来:

    >>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,
    ...                  indent=4, separators=(',', ': '))
    {
        "4": 5,
        "6": 7
    }
    

    这些 sn-ps 来自official documentation

    【讨论】:

    • 谢谢。你觉得什么最适合 blob 或简单的文本字段?
    • 文本。 blob 通常用于图像、二进制文件等。
    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 2017-12-15
      • 2022-10-01
      • 2014-11-25
      • 1970-01-01
      • 2020-10-11
      • 2013-01-15
      • 2020-02-16
      • 2018-05-05
      • 2016-02-04
      相关资源
      最近更新 更多