[英]How to convert sqlalchemy automap query result to json?
我已經有代表 json-reply model 的表的數據庫
我正在使用 Base = automap_base() 來創建這樣的類
import simplejson as json
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine
from sqlalchemy.orm.attributes import QueryableAttribute
Base = automap_base()
# engine, suppose it has two tables 'user' and 'address' set up
engine = create_engine("mysql+pymysql://test:test@localhost/test")
# reflect the tables
Base.prepare(engine, reflect=True)
session = Session(engine)
Person = Base.classes.person
persons = session.query(Person).all()
for person in persons:
print (person.name)
s = json.dumps([dict(r) for r in persons.values()])
我有這個錯誤:
Traceback (most recent call last):
File "c:/Users/rusagm/pythonProjects/sqlalchemytest/send.py", line 24, in <module>
s = json.dumps([dict(r) for r in persons])
File "c:/Users/rusagm/pythonProjects/sqlalchemytest/send.py", line 24, in <listcomp>
s = json.dumps([dict(r) for r in persons])
TypeError: 'person' object is not iterable
我想從我的 sqlalchemy 自動映射查詢創建 json。 我應該怎么辦?
您可能會執行以下操作:
import json
from bson import json_util
json.dumps([{i:v for i, v in r.__dict__.items() if i in r.__table__.columns.keys()} for r in persons], default=json_util.default)
但正如建議的那樣,pandas dataframe to_json 會更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.