gpt4 book ai didi

python - pandas - cdecimal.ConversionSyntax invalidOperation on read_sql_query()

转载 作者:行者123 更新时间:2023-11-28 17:33:14 26 4
gpt4 key购买 nike

在处理数据库 decimal 数据类型时,我遇到了 Pandas read_sql_query() 函数的问题。在使用 varcharinteger 类型时,我对下面相同的代码没有任何问题。

版本信息:

CentOS 6.6
Python 2.7.10 :: Anaconda 2.3.0 (64-bit)
# packages in environment at /opt/anaconda:
pandas 0.16.2 np19py27_0
cdecimal 2.3 py27_0
pyodbc 3.0.10 py27_0
sqlalchemy 1.0.8 py27_0

下面是我尽可能减少的代码以重现错误。我也尝试过通过 sqlalchemy 并得到了同样的错误。 (netezza没有sqlalchemy引擎所以还是要依赖pyodbc。)

import pyodbc 
import pandas as pd
connection = pyodbc.connect("Driver={NetezzaSQL};servername=nzserver;database=MASTER;username=USER_GUY;password=****")

sql = "select cast(0.0 as decimal(6,2)) as testing "

data = pd.io.sql.read_sql_query(sql, connection, index_col=None, coerce_float=True)

#Also tried this, same error
data = pd.io.sql.read_sql_query(sql, connection, index_col=None, coerce_float=False)


---------------------------------------------------------------------------
InvalidOperation Traceback (most recent call last)
<ipython-input-217-ba167303e6b2> in <module>()
1
----> 2 data = pd.io.sql.read_sql_query(sql, connection, index_col=None, coerce_float=True)
3 # InvalidOperation: [<class 'cdecimal.ConversionSyntax'>]
4

最佳答案

看起来这是一个已知的 issue与 pyodbc。那里有一个补丁,你可以试试。甚至还有来自 netezza 的评论。

关于python - pandas - cdecimal.ConversionSyntax invalidOperation on read_sql_query(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847246/

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