我试图逐行迭代csv并使用session.add函数将数据插入到特定的postgres数据库和表中。
import csv
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.engine.url import URL
# Define database
DATABASE = {
'drivername': 'postgresql',
'host': 'localhost',
'port': '5432',
'username': 'postgres',
'password': 'password',
'database': 'postgres'
}
# Connect to the database
return engine = create_engine(URL(DATABASE))
# Sessionmaker returns a class
session = sessionmaker(bind=engine)()
# Open csv
r = csv.reader(open("E:\Testcsv.csv"))
# Skip headers
r.next()
end = False
while end == False:
try:
next = r.next()
tableupdate = (
var_oid = next[0],
var_trip_id = next[1],
var_route_id = next[2],
var_vehicle_id = next[3],
var_position_latitude = next[4],
var_position_longitude = next[5],
var_timestamp = next[6]
)
except StopIteration:
end = True
如何使用session.add()函数将数据添加到已定义的名为" vehicle_positions"的表中来完成此代码。
答案 0 :(得分:0)
Sqlalchemy session.add()
适用于模型实例(reference),因此,如果您愿意使用session.add()
,则只需使用已定义的模型(sqlalchemy mapping table columns )。
OR
如果您可以使用原始执行,只需使用session.execute('insert into table ......')
reference to use session.ececute()即可运行插入。