gpt4 book ai didi

sql-server - Python Turbodbc executemanycolumns 错误 : Unable to cast Python instance to C++ type (compile in debug mode for details)

转载 作者:行者123 更新时间:2023-12-03 19:25:53 28 4
gpt4 key购买 nike

尝试在 SQL Server 中使用 executemanycolumns 时,出现此错误:“无法将 Python 实例转换为 C++ 类型(在 Debug模式下编译以获取详细信息)


我知道 Turbodbc 不喜欢 numpy 空值(NaN 或 NaT),所以为了删除这些我使用:

df= df.where((pd.notnull(df)), None)

然而,在运行这个之后,我收到一个错误,说一列不连续。这些总是 int64 数据类型的列。为了解决这个问题,我使用 arr.flags['C_CONTIGUOUS'] 检查每个数组,如果为 False,则使用 np.ascontiguousarray(arr)。然后我收到“无法将 Python 实例转换为 C++ 类型(在 Debug模式下编译以获取详细信息)”
"又出错了。

我的数据框不包含 NaN 或 NaT。关于导致此错误的原因有任何想法吗?谢谢你的帮助!

最佳答案

所以这个答案绝对不是为什么会发生这个错误的完整解释,而是基于我自己解决这个问题时的发现。

首先,我需要引用这篇很棒的文章,它为我提供了构建 SQL 导出的功能 https://medium.com/@erickfis/etl-process-with-turbodbc-1d19ed71510e

在本文的末尾有一些回复和问题,其中一些与您的问题有关。其中有一个响应,说他们将数据帧写入 csv,然后读取该 csv,然后运行 ​​Turbodbc 代码。

我不确定为什么这可能会消除您看到的错误 - 并且为了避免违反关于答案的 SO 规则,我不会放弃我对正在发生的事情的猜测,因为它可能没有帮助!

我决定遵循这个建议,因为我不知所措,幸运的是它在大约 17 秒内工作并导出了我的整个数据框(20975 行和 100 列)!

我在使用 Turbodbc 时看到其他错误时所做的其他一些事情如下(可能与此特定问题没有直接关系,但可能有助于您进一步解决其他问题):

  - update numpy to most recent version
- install dlib from whl file here https://pypi.org/simple/dlib/
- install CMake using pip install

我希望这会有所帮助,并且其他人可以为您提供有关正在发生的事情的更彻底的解释!

关于sql-server - Python Turbodbc executemanycolumns 错误 : Unable to cast Python instance to C++ type (compile in debug mode for details),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57311776/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com