在使用ValuesQuerySet存放查询结果时,有时需要转为json,但并不能直接使用json.dumps()直接转,而是需要经过下面一个步骤:
result_set = Apple.objects.all().values()
print type(result_set)
data_list = result_set[:] # queryset转为list
print type(data_list)
output:
经过转换之后,data_list可以使用json.dumps()转为json;
为什么要有ValuesQuerySet?
查询内容直接转为字典形式,方便后续使用;
可以指定查询哪一列;例如Apple.objects.all().values(‘id'),只会查询表中的id这一列;
补充知识:Python对象转json【包括嵌套对象转json,django的model转json】
背景:
给app写接口时经常会遇到将一个model转为json返回。
问题:
网上也有类似方法,只是搜索结果多少有些问题,总是搜了好一会儿才找到合适的方法,另外,网上更多集中的只是简单些的对象,对于复杂的对象,还是不容易找到好的方式。
方案(python3.6):
1对象转json:
model类
class People():
def __init__(self, name, age, pet):
self.name = name
self.age = age
self.pet = pet
class Pet():
def __init__(self, pet_type, pet_name):
self.pet_type = pet_type
self.pet_name = pet_name
将Pet对象转json:
import json
def pet2json():
pet = Pet('Cat&