问题标签 [read-sql]

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.

0 投票
0 回答
114 浏览

python - 具有十进制数据类型的 Pandas `read_sql_query`

我正在尝试使用read_sql_query()从 MySQL 数据库读取查询,数据库中的字段之一,它的类型是decimal(28,5),我想使用dtype=参数来完全控制数据类型,但似乎熊猫无法识别Decimal类型:

这会给我一个错误TypeError: dtype '<class 'decimal.Decimal'>' not understood

因此,如果我不指定字段的类型value

这很好用,如果我打印出数据类型print(type(df['value'][0])),这会告诉我<class 'decimal.Decimal'>,但是有没有办法可以value在 Python 代码中将字段类型指定为十进制?谢谢。

0 投票
1 回答
47 浏览

python - pandas `read_sql_query` - 将 MySQL 数据库中的`double` 数据类型读取为`Decimal`

我正在尝试使用read_sql_query()从 MySQL 数据库读取查询,数据库中的字段之一,它的类型是double(24, 8),我想使用dtype=参数来完全控制数据类型并将其读取到decimal,但似乎熊猫不能识别decimal类型,所以我不得不阅读它Float64

在数据库中,该字段的值如下所示:

然后我试图从 Python 代码中读取它:

但是从上面的代码中读取数据后,它看起来像这样:

如何阅读此栏decimal并保留所有数字?谢谢。

0 投票
0 回答
56 浏览

python - 在 pyodbc 驱动程序中添加类型转换的配置

我正在尝试pandas.read_sql通过使用 pyodbc 驱动程序在 Python 中使用方法来读取存储过程。我遇到的问题是当 Pandas 读取数据时,它会将int列转换为float其中包含 Null 值的列。

有没有办法通过应用一些配置或挂钩一些自定义转换器来填充 pyodbc 驱动程序中的那些空值?

我不想在 SQL 级别或通过 pandas 阅读它时更改它。

0 投票
1 回答
87 浏览

python - Pandas read_sql_query 将浮点数转换为 int

我正在尝试将信息从 SQL 数据库提取到 Python。数据库的两列是数字,主要是浮点格式。我的问题出现在超过 6 位的数字上,read_sql_query 将它们读取为 int,因此小数不会出现在数据框中。例如,如果 SQL 中的数据库如下所示:

指数 代金券 已付款
1 225.21 0
2 695.3 0.35
3 6987512.12 635.21
4 654887.36 69995.36

将数据库导入 Python 后,数据框如下所示:

指数 代金券 已付款
1 225.21 0
2 695.3 0.35
3 6987512 635.21
4 654887 69995

超过 6 位左右的数字会丢失小数点。我的代码是:

我已经尝试过:

你能帮我解决这个问题吗?谢谢!

0 投票
0 回答
79 浏览

python - 使用 pandas.read_sql 重用数据库连接对象以进行高频更新 [Python/MariaDB/alive-db-connection]

我正在尝试重用 MariaDB 的数据库连接对象,并将其存储为 Singleton 类的静态变量。

然后,在下面我调用调用类的连接:

但是每次执行上面的'read_sql'时,都会创建新的类对象,并且connection_string总是None,根本不是单例。我究竟做错了什么?

如果有人要问为什么,我会尝试以高频率(每秒 3-4 次调用)从我的 MariaDB 数据库中查询数据。MariaDB 连接字符串初始化大约需要 0.4 秒。如果我将 SingletonAux 类视为 mariaDB 连接字符串,例如:

然后 Pandas 抱怨说 SingletonAux 没有游标功能,这是真的。如果我需要以某种方式取消引用 maria 对象,但我不知道如何。

如果我的基本代码中有错误,请帮助。

0 投票
0 回答
22 浏览

pandas - 如何从具有原始时间戳的 PostgreSQL 数据库中导入数据?

0 投票
0 回答
69 浏览

python - pandas.read_sql() 函数的查询字符串的大小是否有最大限制?

我有一个 Python 脚本,它从用户那里获取一个名称列表,创建一个 SQL 查询字符串,然后查询数据库并将数据放入使用pandas.read_sql()方法的数据框中。但是,我注意到如果我要查询的人的列表非常长,我的代码永远不会到达后面的行pandas.read_sql(),并且由于某种原因,没有捕获到异常。

我的查询字符串如下所示:

其中可能包含数百个名称。

我使用的 Python 代码如下所示:

我的代码总是执行到 try 块。该程序打印“尝试”,但从不打印“完成”,也不会返回任何错误。我检查了,pymongoConnection对象是正确的。我还尝试query_string在 MySQL 中手动执行它,它可以工作。

问题一定出在pandas.read_sql()甚至这里,只有当查询字符串的大小超过某个阈值时才会出现问题,否则代码会正确完成。是否有使用限制pandas.read_sql(),例如输入字符串的最大大小或最大WHERE子句或返回数据帧的最大数据量?因为我想不出任何其他可能导致问题的东西。

0 投票
0 回答
27 浏览

python - 使用 Python、Pandas、pyodbc 从 Access DB 访问数据时保留具有精确小数位的精确浮点数

我已经通过 pd.read_sql_query 命令使用 python、pandas、pyobdc 访问了存储在 Access DB 中的表。该表具有用于预测值计算的浮点值,在从表中读取这些浮点值时,Python 并未完全按原样读取它们,而是在末尾添加了更多数字,这会导致错误的预测值。

例如 DB 中的值:0.292244,Python 和 pandas 检索到的值:0.29224375

他们给了我不正确的值,因为它们被用于指数函数。我已经打开和关闭了 coerce_float 参数,但它没有做任何更改。请提出一种正确的方法。

0 投票
0 回答
34 浏览

python - 通过python脚本将MYSQL表导出到csv?

虽然有很多解决方案可以使用 python 将 mysql 表导出到 csv。我想知道这样做的最佳方法?目前我将大约 50 个表存储到 csv 中,这大约需要 47 分钟,并且还需要超过 16gb 的内存。

代码是:

我已经看到了许多存储到 csv 的方法,例如:

  • 使用光标
  • 使用 pyodbc 库
  • pandas 读取 sql 方法。

有没有其他方法或技术,哪一种最能减少内存或执行时间?

0 投票
1 回答
119 浏览

python - 当我期望一个列表时,为什么我没有('NoneType' 对象不可迭代)?

我正在使用 pandas.read_sql 检索表名列表,然后尝试使用“for”循环从检索到的列表中删除表。但是,我收到“NoneType”对象不可迭代错误(尽管列表不为空)。

你能帮我弄清楚我的错误是什么吗?先感谢您!

LE:请参阅下面我收到的完整输出: