我如何在通过python运行时将变量传递到sql文件中

Hdk*_*Hdk 9 python sql

我有一个 Python 包装器,它读取 SQL 文件并执行它。例子:

query=job.get_sql_from_file("$DIR/file_path/file_name.sql")
job.execute(query)
job.query_desc()
Run Code Online (Sandbox Code Playgroud)

$DIR :是 bashrc 文件中声明的默认路径

FILE_NAME.sql :包含架构名称和读取 input_file 以加载表的路径:我希望该路径是动态的并将其作为参数传递。我怎样才能做到这一点?

我所知道的是:

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Run Code Online (Sandbox Code Playgroud)

...但它在我的情况下不起作用,因为我的 SQL 语句位于 .sql 文件中,并且我必须在该文件本身中传递参数。

Hac*_*lic 5

我可以建议你可以读取该文件,然后替换.

示例:我的 test.sql 文件

select * from xxxxxx
Run Code Online (Sandbox Code Playgroud)

现在将“xxxxxx”替换为您的表格

table = 'my_table'
sql_statement = open('test.sql').read().replace('xxxxxx', table)
Run Code Online (Sandbox Code Playgroud)

您还可以使用格式

示例:我的 test.sql 文件

select * from {}
Run Code Online (Sandbox Code Playgroud)

现在使用格式

sql_statement = open('test.sql').read().format('my_table')
Run Code Online (Sandbox Code Playgroud)