【问题标题】:Dynamically created Dataframe as SQL parameter in Python在 Python 中动态创建 Dataframe 作为 SQL 参数
【发布时间】:2020-12-30 13:25:30
【问题描述】:

我正在尝试通过read_sql_query() 在 python 中提取 SQL 数据。

为了提取数据,我使用以下 SQL 查询:

SELECT * FROM table WHERE id IN (:ids);

在这些步骤之前,前面的代码会以数据框的形式生成一个 id 列表。此数据框只能有 1 个 id 或超过 1000 个 id。

在别处搜索后,我可以将 df 以元组的形式保存,然后将查询保存为带有元组的字符串。我在这里找到了这个解决方案: How to pass a data frame as parameter to a SQL query in Python?

但这只有在 df 的记录少于 1000 条时才有效。

如何运行它以包含 1800 个 id 之类的内容。

【问题讨论】:

    标签: python python-3.x pandas oracle dataframe


    【解决方案1】:

    read_sql_query() 函数支持 chunksize 参数。

    你可以使用

    for chunk in pd.read_sql_query("SELECT * FROM tab WHERE ids IN ({})".format(ids), engine, chunksize=100):
        print(chunk)
    

    默认 chunksize 的值为None。如果提供了一个特定的值,那么 pandas 将与数据库交互,以根据 chunksize 值为循环的每次迭代接收更多的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 2017-06-09
      • 2017-09-04
      • 2017-03-13
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      相关资源
      最近更新 更多