使用spatialite/python将数据库附加到不同的驱动器上

2024-06-16 09:45:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我对GIS和python都是新手,所以谢谢你对我的耐心。 我需要把数据从一个数据库复制到另一个数据库。表是相同的,我计划简单地清除目标表(从中删除)并从源数据库中加载数据(从[source];)我的挑战是源表和目标表位于不同的驱动器上。你知道吗

我正在使用以下代码:

# Connect to the origin database.
ns_db_pnm = 'C:\\temp\\db_name.db'
conn = sqlite3.connect(ns_db_pnm)

# Load the SpatiaLite extension to SQLite.
conn.enable_load_extension(True)
conn.execute("select load_extension('mod_spatialite', 'sqlite3_modspatialite_init')")

cur = conn.cursor()
# Attach the destination database FROM A DIFFERENT DRIVE
d_db_pnm = 'D:\\db_path\\db_name.db'
cur.execute('ATTACH DATABASE ' + d_db_pnm + ' AS delivery;')

代码在执行时失败,错误如下:

sqlite3.OperationalError: unrecognized token: ":"

似乎真的不喜欢我连接的数据库在不同的驱动器上。你知道吗

我看到的所有示例都使用数据库的相对路径(没有驱动器名)。显然,我需要改变一个工作目录或一些这样的。请告诉我怎样才能做到这一点。我对无所不知的谷歌的呼吁并没有产生一个可行的答案。你知道吗


Tags: theto数据代码name数据库目标db