如何将python字典中的所有元素添加到数据库中?
我正在尝试将字典的元素添加到数据库中。我对使用数据库完全是新手,我只是想知道我是否做对了,因为我觉得不是。如果是,我怎么做?那么我如何打印数据库的所有元素呢如何将python字典中的所有元素添加到数据库中?,python,sqlalchemy,Python,Sqlalchemy,我正在尝试将字典的元素添加到数据库中。我对使用数据库完全是新手,我只是想知道我是否做对了,因为我觉得不是。如果是,我怎么做?那么我如何打印数据库的所有元素呢 from sqlalchemy import Column, String, Integer, create_engine from sqlalchemy.orm import relationship, sessionmaker from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.orm import relationship, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key = True)
name = Column(String(250), nullable=False)
job = Column(String(250), nullable=False)
engine = create_engine('sqlite:///persons.sqlite')
session = sessionmaker()
session.configure(bind=engine)
Base.metadata.create_all(engine)
dct = {'John':'doctor', 'Alice':'typist'}
for el in dct:
np = Person(name=el, job=dct[el])
s = session()
s.add(np)
s.commit()
您不需要为每个项目创建新会话:
s = session()
for name, job in dct.iteritems():
np = Person(name=name, job=job)
s.add(np)
s.commit()
您不需要为每个项目创建新会话:
s = session()
for name, job in dct.iteritems():
np = Person(name=name, job=job)
s.add(np)
s.commit()
您的代码几乎完成了。您可以在验证后查询数据库
from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
job = Column(String(250), nullable=False)
engine = create_engine('sqlite:///persons.sqlite')
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)
s = session()
dct = {'John': 'doctor', 'Alice': 'typist'}
for key, value in dct.items():
np = Person(name=key, job=value)
s.add(np)
s.commit()
db_result = s.query(Person).all()
for row in db_result:
print row.id, row.name, row.job
输出:
1 John doctor
2 Alice typist
您的代码几乎完成了。您可以在验证后查询数据库
from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
job = Column(String(250), nullable=False)
engine = create_engine('sqlite:///persons.sqlite')
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)
s = session()
dct = {'John': 'doctor', 'Alice': 'typist'}
for key, value in dct.items():
np = Person(name=key, job=value)
s.add(np)
s.commit()
db_result = s.query(Person).all()
for row in db_result:
print row.id, row.name, row.job
输出:
1 John doctor
2 Alice typist
还有另一种方法可以直接将Python Dict插入数据库,而无需使用
for
循环,这可能会对您有所帮助
session.execute(Person.__table__.insert(), dict_values))
session.commit()
dict\u values
是一个Python dict,其键的名称与数据库列的名称完全相同。例如:{'name':“job':“Programmer”}
或一个目录列表,例如:[{'name':“John Doe”,'job':“Programmer”},{…},]
更多示例,请查看此项:还有另一种方法可以直接将Python Dict插入数据库,而无需使用
for
循环,这可能会对您有所帮助
session.execute(Person.__table__.insert(), dict_values))
session.commit()
dict\u values
是一个Python dict,其键的名称与数据库列的名称完全相同。例如:{'name':“job':“Programmer”}
或一个目录列表,例如:[{'name':“John Doe”,'job':“Programmer”},{…},]
更多示例,请查看此项:谢谢,这帮了大忙!谢谢你,这帮了大忙!