Python SQLAlchemy实例更简洁的初始化

Python SQLAlchemy实例更简洁的初始化,python,sqlalchemy,Python,Sqlalchemy,这是我第一次尝试炼金术。我有一个包含usr信息的json文件,我想把它们放在sqlite3数据库文件中。它可以工作,但我发现实例初始化很冗长,因为表中有很多列,如下面所示 是否可以使用字典作为输入来初始化User()?类似于a=User(usr) 导入json 从sqlalchemy导入* 从sqlalchemy.ext.declarative导入声明性基础 引擎=创建引擎('sqlite:///tutorial.db,echo=True) Base=声明性_Base() 类用户(基本): __

这是我第一次尝试炼金术。我有一个包含usr信息的json文件,我想把它们放在sqlite3数据库文件中。它可以工作,但我发现实例初始化很冗长,因为表中有很多列,如下面所示

是否可以使用字典作为输入来初始化
User()
?类似于
a=User(usr)

导入json
从sqlalchemy导入*
从sqlalchemy.ext.declarative导入声明性基础
引擎=创建引擎('sqlite:///tutorial.db,echo=True)
Base=声明性_Base()
类用户(基本):
__tablename_uu='users'
id=列(整数,主键=True)
bbs_id=列(字符串)
名称=列(字符串)
sex=Column(字符串,null=False)
城市=列(字符串)
状态=列(字符串)
class_type=Column(字符串,null=False)
class_id=Column(String,nullable=False)
纬度=列(浮动)
经度=列(浮动)
定义报告(自我):
返回“”%(self.bbs_id,self.name)
Base.metadata.create_all(引擎)
以open('mydata.json')作为fin:
usrs=json.load(fin)
usr=usrs[0]
a=用户(id=usr['id'],bbs\u id=usr['bbs\u id'],name=usr['name'])

如果您知道JSON对象中的属性名与Python模型的列名匹配,您只需更改:

a = User(id=usr['id'], bbs_id=usr['bbs_id'], name=usr['name'])
致:


传递dict的每个键/值对,就像它是一个通过关键字传递的参数一样。由于您没有为您的模型重写
\uuuuu init\uuuuu
,因此它已经允许并期望参数是可选的,并通过关键字传递,因此这非常符合要求。

非常感谢您。这正是我想要的!
a = User(id=usr['id'], bbs_id=usr['bbs_id'], name=usr['name'])
a = User(**usr)