如何将session.add()指向特定的表

时间:2015-07-22 01:23:07

标签: postgresql python-2.7 sqlalchemy

我试图逐行迭代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"的表中来完成此代码。

1 个答案:

答案 0 :(得分:0)

Sqlalchemy session.add()适用于模型实例(reference),因此,如果您愿意使用session.add(),则只需使用已定义的模型(sqlalchemy mapping table columns )。

OR

如果您可以使用原始执行,只需使用session.execute('insert into table ......') reference to use session.ececute()即可运行插入。