如何从Python脚本中的文本文件中读取数据库凭据?当Grafana搜索目标时,它应该转到文本文件并获取数据库凭证并执行它。
import cx_Oracle
import pprint
con = cx_oracle.connect(user= "", password="", sid= "")
con= cur.cursor()
cur.execute("SELECT ****FROM TEMP")
rows = cur.fetchall()
columns = cur.description()
有没有办法将那些数据库凭证从我的文本文件传递给脚本?
答案 0 :(得分:0)
尝试使用import sys
并读取通过sys.argv
的参数,这是一个列表。您传递的参数从第二个(索引1)开始
以下是一个示例。
import sys
if __name__ == "__main__":
print(type(sys.argv))
if len(sys.argv) <2:
print("Expecting file credentials")
exit(1)
f = open(sys.argv[1])
for line in f:
print(line[:len(line)-1]) #avoid printing new line char
指定应该如何提取凭据文件。
编辑:输入文件是JSON
import sys
import json
if __name__ == "__main__":
#print(type(sys.argv))
if len(sys.argv) <2:
print("Expecting file credentials")
exit(1)
f = open(sys.argv[1])
#for line in f:
# print(line[:len(line)-1]) #avoid printing new line char
###READ FROM JSON
data = f.read()
print("---------")
print(data)
content = json.loads(data)
print(content["postgres"]["host"])
print(content["postgres"]["password"])
请注意,这给我带来了问题:您可以一次使用f.read()
读取文件。如果再次调用它,则没有任何内容可供阅读。