Django Postgresql JsonField遍历访问

时间:2018-06-12 19:43:16

标签: python django postgresql django-jsonfield

我有以下django模型:

class UnitOfMeasure(models.Model):
    unit_of_measure_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100, verbose_name="Unit Of Measure")
    insert_time = models.DateTimeField(auto_now_add=True)
    update_time = models.DateTimeField(auto_now=True)

class SmartDeviceMeasurement(models.Model):
    measurement_id = models.AutoField(primary_key=True)
    data = JSONField(null=False, blank=False)

data JsonField字段中,我将放置一个json字典,如下所示:

{
  "3": {
    "VLN1": 222,
    "VLN2": 222,
    "VLN3": 222
  },
  "4": {
    "IL1": 222,
    "IL2": 222,
    "IL3": 222
  }
}

我的数据库中的每一行都包含此JSON,即系统从传感器读取数据时构建的对象,每个字典键代表度量单位的主键(在另一个模型中引用)描述读取变量"即:VLN1具有UnitOfMeasure 3,依此类推......"),在这种情况下,键3是电压,键4是安培。

我的目标是使用特定单位创建所有测量的列表。

我试过使用django has_key方法,但是给了我整个行数据的结果,无论如何,我只需要获得一个" part"例如,对于整个json对象,结果可能与此类似:

select data->>'3' AS test from SmartDeviceMeasurement

test
{"VLN1": 222, "VLN2": 222, "VLN3": 222}
{"VLN1": 220, "VLN2": 220, "VLN3": 220}
{"VLN1": 223, "VLN2": 223, "VLN3": 223}

任何解决方案或建议?

感谢。

0 个答案:

没有答案