【问题标题】:Converting QuerySet to JSON when selecting fields选择字段时将 QuerySet 转换为 JSON
【发布时间】:2015-03-22 20:27:39
【问题描述】:

我正在尝试将通过 Django 查询选择的值列表转换为 json。

我的查询是:

city_list = Address.objects.values('city').distinct()

地址在哪里

class Address(models.Model):
    id = models.AutoField(primary_key=True)
    streetAddress = models.CharField(max_length=200)
    city = models.CharField(max_length=200)
    state = models.CharField(max_length=200)
    zipCode = models.CharField(max_length=200)
    def __unicode__(self):
        return str(self.id) + ", " + self.streetAddress + ", " + self.city + ", " + self.state + ", " + self.zipCode
    def natural_key(self):
        return {"streetAddress":self.streetAddress, "city":self.city, "state":self.state, "zipCode":self.zipCode}

我正在尝试将其转换为这样的 json:

{ "cities" : [ {"city" : "New York"}, {"city" : "Los Angeles"}, {...} ]}

我试过这个:

jsonData = json.dumps(city_list)

但错误表明 city_list 不是 JSON 可序列化的。在错误屏幕中,字符串如下所示:

[{'city': u'Baltimore'}, {'city': u'Berkeley'}, {'city': u'Austin'}...

我该如何解决这个问题?

【问题讨论】:

  • 不能手动制作一个json可序列化的值吗? {“城市:json.dumps(city_list) }
  • 当然可以,但是还有其他方法。我发布了一个解决方案。

标签: json django django-queryset


【解决方案1】:

解决方案:通过列表传递

city_list = list(Address.objects.values('city').distinct())
jsonData = json.dumps({"cities" : city_list})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    相关资源
    最近更新 更多