问题标签 [sqlalchemy-access]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - SQLAlchemy - MS Access 连接失败
我正在尝试使用 sql alchemy 连接到 MS Access。我的访问是 64 位的。我已经尝试过 32 位 python 和 64 位 python。结果是一样的。
它使用 pyodbc 工作:
但使用 sqlalchemy 失败:
我得到错误:
无法加载插件:sqlalchemy.dialects:access
python - 使用 fast_executemany 写入 MS-Access DB 不起作用
我在将数据加载到访问数据库时遇到问题。出于测试目的,我构建了一个小转换函数,它从 hdf 文件中获取所有数据集并将其写入 accdb。没有@event.listens_for(engine, "before_cursor_execute")
它的功能,但速度很慢。有了它,它会产生一种奇怪的行为。它在数据库中只创建一个空表(从第一个 df 开始)并完成执行。for 循环永远不会完成,也不会引发错误。
可能是因为该sqlalchemy-access
包不支持 fast_executemany 但找不到任何相关信息。你们中有人对我有什么意见吗?我该如何解决它或能够以更快的方式将数据写入数据库?
非常感谢!
python - 从 URL 读取 Zip 文件并将 Ms Access 文件转换为数据框
我写这条消息是为了寻求帮助,以便为这个 python 代码找到解决方案。与我公司的零件数据库相比,我正在尝试生成 FAA PMA 零件的可视化。我已经使用 Power Bi、SQL 查询和 Excel 文件完成了它,但它不是在线可视化。每个月我都必须从 URL ( https://rgl.faa.gov/Regulatory_and_Guidance_Library/rgPMA.nsf/f6a80b2e3c91131686257bcf0063a042/bc1b3424cc899bee86257beb006237ae/$FILE/PMA.zip ) 下载 FAA PMA 部件以更新此可视化。
话虽如此,我已经尝试执行这些 python 代码,以便从上述 Url 读取 Ms Access 文件并将其转换为 Pandas DataFrame。
但是,由于以下原因,我没有成功完成这项任务:
首先,我尝试使用 sqlalchemy,但出现了以下错误。
错误:回溯(最近一次调用最后):文件“C:/Users/thiago.ribeiro/.PyCharmCE2019.1/config/scratches/scratch.py”,第 17 行,在 engine = create_engine(connection_url) 文件“C:\用户\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\ engine_init_.py”,第 500 行,在 create_engine 返回 strategy.create(*args, **kwargs) 文件“C:\Users\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy \engine\strategies.py”,第 61 行,在创建入口点 = u._get_entrypoint() 文件“C:\Users\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\engine \url.py”,第 172 行,在 _get_entrypoint cls = registry.load(name) 文件“C:\Users\thiago.ribeiro\AppData\Local\Programs\Python\Python38\lib\site-packages\sqlalchemy\util\ langhelpers.py”,第 267 行,在加载中引发 exc.NoSuchModuleError(sqlalchemy.exc.NoSuchModuleError:无法加载插件:sqlalchemy.dialects:access.pyodbc
之后我尝试使用pyodbc,但也出现了以下错误。
错误:回溯(最近一次调用最后一次):第 17 行,在 cnxn = pyodbc.connect(driver=access_driver, dbq=filepath, autocommit=True) pyodbc.Error: ('HY000', '[HY000] [Microsoft][Driver ODBC Microsoft Access] 一般错误无法打开注册表项临时(易失性)Ace DSN 进程 0x2efc 线程 0x4a20 DBC 0xd39ea788
综上所述,能否请您帮助我了解我的代码哪里出了问题,以及如何改进它以便从 url 读取 MS Access 并将其转换为 pandas 数据框?
python - PyInstaller 不包括 sqlalchemy-access 模块
我正在尝试将 Dataframe 写回 Access 数据库文件.mdb
或.accdb
. 我正在使用sqlalchemy
和sqlalchemy-access
创建连接。
我有pyodbc
并sqlalchemy-access
通过pip
. 如果我要在 Python 交互式 shell 或 Jupyter Notebook 中运行它,一切正常。但是当我使用 PyInstaller 构建一个可执行文件时,我得到:
我不知道为什么这种情况不断发生。我的脚本只导入sqlalchemy
,但我也包含hiddenimports=['sqlalchemy_access', 'pyodbc']
在.spec
文件中。然而,没有任何帮助。
pandas - MS Access pyodbc Pandas 数据帧 to_sql 抛出无效的精度值
我正在使用 pandas 数据框的 to_sql 函数将记录保存到 MS Access 97 MDB。但我收到以下错误:
我在 Windows 10 工作站上使用 Python 3.8.5 32 位。
我还安装了以下库。
提前致谢!
python - 如何使用 ORM 从 SqlAlchemy 的多值字段中获取对象列表?
我有来自我的客户的 MS Access DB 文件 (.accdb),需要用 declarative_base 类描述表和列。正如我在表构造函数中看到的那样 - 其中一个列具有整数值,并且与另一个表中的另一列(外键)具有“一对多”关系。但实际上在这个外键中存储的不是单个整数值,而是数字值用分号分隔的字符串。这种技术称为“多值字段”。事实上,这是没有关联表的“多对多”关系。
非常简化的方案:
我尝试使用 declarative_base 父类将类映射到表。但是在没有关联表的情况下找不到如何声明“多对多”关系。现在我有这样的代码。
在请求人期间,我有奇怪的行为:
- 如果未指定 vacancy_id,我将 Person.vacancies 设为 None。
- 如果 vacancy_id 指定为单个值(即“1”),则在 Person.vacancies 我得到 Vacancy 类的单个对象。
- 如果 vacancy_id 指定为多个值(即“1;2;3”),在 Person.vacancies 我也得到无。
当然,我可以请求原始 Person.vacancy_id,用分号分隔,然后请求获取带有 ID 列表的空缺。
但我想知道——SqlAlchemy 是否可以处理“多值字段”?处理此类文件的最佳方式是什么?
更新 目前我做了以下解决方法来自动解析多值列。这应该添加到 Persons 类:
空缺类应具有以下属性:
最后,我们必须为课堂使用准备会话:
python - NoSuchModuleError:无法加载插件:sqlalchemy.dialects:access.pyodbc
我想将数据框导入访问数据库,但出现错误NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc
python - 是否有任何不使用 Java 的 mdbtools 替代品?
因此,我尝试使用 Python 和 SqlAlchemy 在 Linux 系统(Ubuntu 20.04 和 CentOs 8)上处理 MsAccess DB 文件。即使使用最简单的查询也无法使用 mdbtools 驱动程序。在我家的 Ubuntu 上,我安装了最新的 sqlalchemy_access、pyodbc、unixodbc。作为驱动程序,我安装了 odbc-mdbtools。
在 /etc/odbcinst.ini 建立正确的连接:
DSN URI 是:
我的数据库模型是:
所以一切正常,并且在我提出第一个请求之前运行没有错误。如果我尝试简单地从基础获取所有文章,我会收到以下错误:
如您所见,SQL 语句是正确的,并且在 DBeaver 中运行没有问题。似乎 mdbtools 驱动程序存在一些问题。因此,我试图找到另一个可以在 Linux 下运行的 MsAccess 驱动程序。按照这个旧答案,mdbtools 只有 2 个替代品(JayDeBeApi 和 Jython)。DBeaver 也使用 UCanAccess 驱动程序。它们都依赖于Java VM,由于一些内部问题,无法在目标系统上使用。没有 Java 的 MsAccess 是否有任何已知的驱动程序替代品?
PS 即使我在数据库和模型中只留下一个 ID 列并运行原始请求,也会出现同样的问题:
PPS 如果我使用 isql 实用程序,也会出现同样的问题。工具 mdb-sql 工作正常 - 显示 UTF-8 字符(DB 有俄语)。
python - 使用 to_sql 将 pandas 数据框导出到访问表中生成错误
我正在尝试使用sqlalchemy-access库将数据框插入到访问数据库中:
我拥有的代码是:
但是当我运行这段代码时,我收到了这个错误:
当我尝试运行此行时会生成错误:
这段代码有什么问题,我该如何解决?
编辑 1
根据评论和这篇文章,我将代码更改为:
但我仍然收到错误:
编辑 2
所以代码现在看起来像这样:
但我仍然收到此错误:
应该注意的是,我已经在我的系统上安装了 Access。
python - MS Access 数据库被 Python 锁定
我正在使用 Python 将数据框写入 MS Access 数据库。它可以工作,但我似乎无法关闭连接(即数据库被 Python 锁定)。
这是我的代码:
我尝试在创建引擎行之后添加它:
在将数据帧写入数据库之后:
我没有从这些添加中得到错误,但数据库仍然被锁定。如何关闭连接以解除锁定?