返回结果 [<apps.models.test.index.User object at 0x000001D2EDD91208>, <apps.models.test.index.User object at 0x000001D2EDA666D8>, <apps.models.test.index.User object at 0x000001D2EDD62358>]
返回数据类型 <class 'list'>
<apps.models.test.index.User object at 0x000001D2EDA666D8>
<class 'apps.models.test.index.User'>
处理结果 [{"creact_time": null, "id": 1, "name": "root", "password": "123456", "query": null, "query_class": null, "status": 1}, {"creact_time": null, "id": 2, "name": "An", "password": "123456", "query": null, "query_class": null, "status": 1}, {"creact_time": "2019-10-31 11:12:08.041", "id": 4, "name": "admin", "password": "123456", "query": null, "query_class": null, "status": 1}]
处理类型 <class 'str'>
再次处理 [{'creact_time': None, 'id': 1, 'name': 'root', 'password': '123456', 'query': None, 'query_class': None, 'status': 1}, {'creact_time': None, 'id': 2, 'name': 'An', 'password': '123456', 'query': None, 'query_class': None, 'status': 1}, {'creact_time': '2019-10-31 11:12:08.041', 'id': 4, 'name': 'admin', 'password': '123456', 'query': None, 'query_class': None, 'status': 1}]
再次处理类型 <class 'list'>
An
工具类
from sqlalchemy.ext.declarative import DeclarativeMeta
import json
class AlchemyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj.__class__, DeclarativeMeta):
# an SQLAlchemy class
fields = {}
for field in [x for x in dir(obj) if not x.startswith('_') and x != 'metadata']:
data = obj.__getattribute__(field)
try:
json.dumps(data) # this will fail on non-encodable values, like other classes
fields[field] = data
except TypeError:
fields[field] = None
# a json-encodable dict
return fields
return json.JSONEncoder.default(self, obj)
使用
from apps.models.test.index import User # model(自行替换)
from utils.AlchemyEncoder import AlchemyEncoder # (路径自行替换)
import json
class Reptile():
def test():
users = User.query.all() # 获取表全部数据(自行替换)
arr = json.dumps(users, cls=AlchemyEncoder)
print(users)
print(type(users))
print(users[1])
print(type(users[1]))
print(arr)
print(type(arr))
a = json.loads(arr)
print(a)
print(type(a))
print(a[1]['name'])