python - 使用 spatialite/python 在不同的驱动器上附加数据库
问题描述
我是 GIS 和 python 的新手,所以感谢您对我的耐心。我需要将数据从一个数据库复制到另一个数据库。这些表是相同的,我计划简单地清除目标表(DELETE FROM)并使用源数据库中的数据加载它(INSERT * INTO [destination] FROM [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:无法识别的令牌:“:”
它似乎真的不喜欢我附加的数据库在不同的驱动器上的事实。
我看到的所有示例都使用数据库的相对路径(无驱动器名称)。显然我需要更改工作目录或类似的东西。请告知我如何实现这一点。我对无所不知的谷歌的呼吁并没有产生一个可行的答案。
解决方案
推荐阅读
- php - pecl install apc 给了我 Makefile:195: 目标“apc.lo”的配方失败
- ansible - 使用 Ansible 从 /etc/ssh/sshd_config 中删除用户
- javascript - 扩展程序无法正确单击,带有相同命令的控制台工作正常?
- telegram-bot - Telegram 机器人在几个月/几周后停止工作
- asp.net - 带有 Web API 的 ASP.NET MVC 5 中移动浏览器上的“404 错误 - 找不到文件或目录”错误
- ros - 螺旋桨的 ROS 模拟
- adobe-illustrator - Adobe Illustrator 脚本 - 更改选区颜色
- c# - 使用 Visual Studio 2017 的 ASP.NET 中的背景问题
- android - 一个 Activity 可以使用相同的方法使用多个 Fragment 之一吗?
- matlab - 为什么我在使用 USB1408FS 时收到错误“计数必须是数据包大小的整数倍”?