【问题标题】:Load the data from oracle database to csv files using python使用python将数据从oracle数据库加载到csv文件
【发布时间】:2021-10-02 08:46:59
【问题描述】:

我已经编写了 python 脚本来从 oracle 数据库中获取数据并将该数据加载到 csv 文件中。

import datetime
import pandas as pd
import cx_Oracle
con = cx_Oracle.connect('SYSTEM/oracle123@localhost:1521/xe')
c = con.cursor()
sql = "select * from covid_data"
res = c.execute(sql)
t = pd.read_sql(sql,con)
t.to_csv(r'C:\Users\abc\covid.csv')

我希望脚本每天运行并加载到 csv 文件。但是我在这里面临的挑战是我想每天获取数据,但 csv 文件中的数据应该只在特定的那一天可用。前一天的内容第二天应该看不到了

【问题讨论】:

  • 你的意思是你只想从oracle中选择前一天的数据吗?如果表启用,您应该可以使用 select 查询来做到这一点
  • 不,我想将当前数据加载到 csv 文件。不能在 csv 文件中看到前一天的数据。
  • 我的评论仍然适用。您需要编写 SQL,以便获得所需的数据
  • 不,我写的sql语句是正确的。这里的事情是,当我选择从 sql 到 csv 文件的所有数据时,它会将当天的数据与前一天的数据一起添加。它应该覆盖以前的数据
  • 是的,选择查询是正确的,如果您想要整个数据。如果你想要今天的数据,你需要改变它。这取决于数据如何存储在您的表中,您在这里没有描述,但它可能类似于select * from covid_data where <date_field> >= sysdate -1 或类似的东西。如果只需要今天的数据,则不需要选择所有数据。

标签: python oracle


【解决方案1】:

我找到了解决方案。

在下面一行中,我们必须添加写入模式,这样它就不会将数据附加到 csv 文件而是覆盖。

t.to_csv(r'C:\Users\abc\covid.csv', mode='w')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2015-10-02
    相关资源
    最近更新 更多