1
これはsqlalchemyでの最初の試みです。私は自分のusrの情報を持つjsonファイルを持っており、それらをsqlite3データベースファイルに入れたいと思っています。それは動作しますが、私は、インスタンスの初期化を冗長的に見ています。SQLAlchemyインスタンスのより簡潔な初期化
辞書を入力として使用してUser()
を初期化することはできますか? a = User(usr)
のようなもの?
import json
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('sqlite:///tutorial.db', echo=True)
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
bbs_id = Column(String)
name = Column(String)
sex = Column(String, nullable=False)
city = Column(String)
state = Column(String)
class_type = Column(String, nullable=False)
class_id = Column(String, nullable=False)
latitude = Column(Float)
longitude = Column(Float)
def __repr__(self):
return "<User(bbs_id='%s', name='%s'>" % (self.bbs_id, self.name)
Base.metadata.create_all(engine)
with open('mydata.json') as fin:
usrs = json.load(fin)
usr = usrs[0]
a = User(id=usr['id'], bbs_id=usr['bbs_id'], name=usr['name'])
ありがとうございました。それは私が欲しいものです! – nos