SQLalchemy에는 두 가지 반환 유형이 있습니다. 하나는 Model 개체이고 다른 하나는 쿼리 컬렉션(일부 필드만 쿼리)입니다.
이 두 가지 반환 결과는 모두 동일한 sqlalchemy.orm.query.Query 유형에서 나온 것입니다.
그래서 Query에 대해 해당 처리를 수행하고 dict
class AlchemyJsonEncoder(json.JSONEncoder): def default(self, obj): # 判断是否是Query if isinstance(obj, Query): # 定义一个字典数组 fields = [] # 定义一个字典对象 record = {} # 检索结果集的行记录 for rec in obj.all(): # 检索记录中的成员 for field in [x for x in dir(rec) if # 过滤属性 not x.startswith('_') # 过滤掉方法属性 and hasattr(rec.__getattribute__(x), '__call__') == False # 过滤掉不需要的属性 and x != 'metadata']: data = rec.__getattribute__(field) try: record[field] = data except TypeError: record[field] = None fields.append(record) # 返回字典数组 return fields # 其他类型的数据按照默认的方式序列化成JSON return json.JSONEncoder.default(self, obj)
이렇게 하면 됩니다. 매번 직렬화할 때
json.dumps(result1, cls=AlchemyJsonEncoder)
를 사용하여 결과 집합의 json 직렬화를 달성할 수 있습니다.
위 내용은 js의 sqlalchemy 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!