【问题标题】:Django JSON string to json objectDjango JSON 字符串到 json 对象
【发布时间】:2014-03-26 11:19:22
【问题描述】:

我正在将 mongodb 与 django 一起使用,并希望将 json 对象存储在 mongodb 中。这是我的代码

型号

class Data(models.Model):
    deviceId = models.CharField(max_length=200)
    payload = models.CharField(max_length=2000)

查看保存数据

deviceId = request.POST.get('deviceId')
payload = request.POST.get('payload')
data = Data.objects.create(deviceId=deviceId, payload=payload);
data.save()

查看抓取数据

data = json.dumps(list(Data.objects.all().values('deviceId','payload')))

回应

{
  "data":{
   "payloads":"{name:\"xyz\"}"
  "id":"xxxxx"
  },
}

问题在于"payloads":"{name:\"xyz\"}"。这是一个字符串而不是 json 对象。

我想要"payloads":"{name:"xyz"}"。如何在 django 中将其转换为 json 对象。无论如何将所有数据集转换为 json 对象,而不是从数据集中迭代每个对象

【问题讨论】:

    标签: python django mongodb json


    【解决方案1】:

    我认为您应该能够只删除脚本的 json.dumps 部分。这是一个将有效 JSON 对象转换为字符串的 python 命令!

    data = list(Data.objects.all().values('deviceId','payload'))
    

    【讨论】:

    • 不,实际上它返回一个列表,我想要 json 响应
    【解决方案2】:

    要存储 JSON,我建议使用 JSONField。

    from jsonfield import JSONField
    class Data(models.Model):
        deviceId = models.CharField(max_length=200)
        payload = models.JSONField(max_length=2000)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多