如何在PostgreSQL中存储Python dicts数组?

时间:2017-04-21 01:49:17

标签: python arrays django postgresql

我有一个Django项目,其中有这样的数组:

{(0,0):{'a':True,'b':False ... },(0,1):{'a':True,'b':True ... },(1,1):{'a':True,'b':False ... }... }

我需要将这个数组存储在PostgreSQL数据库中。我以为是ArrayField 可以帮忙,但我不知道如何声明这样的数组。 我看过https://docs.djangoproject.com/en/1.8/ref/contrib/postgres/fields/
但没有我的情况。 你能告诉我一个例子吗?

我正在使用Django 1.8

2 个答案:

答案 0 :(得分:1)

JSON字段应该是您的最佳选择。 https://docs.djangoproject.com/en/dev/ref/contrib/postgres/fields/#querying-jsonfield

from django.contrib.postgres.fields import JSONField
from django.db import models

class ModelName(models.Model):
    json_data = JSONField()

现在保存数据,

ModelName.objects.create(json_data={(0,0):{'a':True,'b':False ... },(0,1):{'a':True,'b':True ... },(1,1):{'a':True,'b':False ... }... })

答案 1 :(得分:0)

PostgreSQL有两种类型可供您查看,

两者都有重叠的功能。 JSON是SQL 2016规范的一部分;在JSONB上具有一些优点的hstore是一个PostgreSQL的东西