我正在练习Python、环境变量和oracle数据库。
我想创建一个 python 脚本,谁是:
import os
from datetime import datetime
import pandas as pd
import cx_Oracle
conn = cx_Oracle.connect( -> ***should I insert here the env variable name file ?***)
df_ora = pd.read_sql('''select * from example_db''', conn)
df_ora = pd.DataFrame(sql_query)
df_ora.to_csv(os.environ["user"] + "\\Desktop" + "file_name" +".csv")
说实话,我迷失了 cx_Oracle 和 pandas,不知道为这种脚本设置什么。 尝试从多个视频、库信息和此处学习,但每次我找到文档时,它似乎都不准确地满足我的需求。 一些帮助和解释肯定会帮助我进一步了解脚本编写。 最好的问候,
到目前为止,你做得很好,尽管有些部分从你的问题中不清楚。
我假设您正在设置这样的环境变量?虽然你没有提到你正在使用什么操作系统。
export username=romsnp
export password=secretpassword
然后调用python脚本:
import os
from datetime import datetime
import pandas as pd
import cx_Oracle
username = os.environ.get('username')
password = os.environ.get('password')
conn = cx_Oracle.connect(user=username, password=password, dsn="yourserver.com/ServiceName")
df_ora = pd.read_sql('''select * from example_db''', conn)
# the previous line already creates a dataframe, so you don't need to do it again
df_ora.to_csv("file_name.csv")
为了测试,我会尝试首先将文件导出到运行脚本的同一目录。根据您的操作系统,找出正确的文件系统路径可能是一个令人困惑的问题。
另一件事可能会有所帮助 - 当尝试解决 Python 脚本问题时,以交互方式运行它会很有帮助。最简单的方法是使用 python 解释器,只需从命令行调用
python
,然后一次输入一行脚本,以确保每个命令按预期工作。
例如,您可以尝试单独运行
pd.read_sql('''select * from example_db''', conn)
以确保您的查询和连接正常工作。或者,您可以在尝试写入之前运行 print(os.environ["user"] + "\\Desktop" + "file_name" +".csv")
来验证文件路径的外观。
使用像 Jupyter 这样的交互式笔记本也是进行此类实验的一种流行方法,而不会因为尝试调试 shell 脚本而感到沮丧。