首页 > 解决方案 > Python:接收变量名作为输入,存储在另一个文件中

问题描述

我有一个场景,我需要根据收到的输入获取存储在另一个文件中的变量的值,例如,这里 file1.py 包含存储在每个变量中的几个 sql,file2.py 必须接收存储的变量名称在 file1.py 作为输入。

我必须从另一个程序调用 file2.py,从那里传递输入。当我直接将变量名称(--receive_input "v_sql1")作为输入传递时,程序将其作为字符串并出错。有什么方法可以传递变量名(v_sql1)并且程序仍然可以将其指向实际变量并获取 SQL?

file1.py
v_sql1 = " select * from table"
v_sql2 = "select * from table2"

file2.py
from file1 import *
df = spark.sql(receive_input)

标签: pythonpyspark

解决方案


我想这就是你所追求的。

file1.py

sqlstmts = {
  'v_sql1': "select * from table",
  'v_sql2': "select * from table2"
}

file2.py

import file1
pick = "v_sql1"
df = spark.sql(file1.sqlstmts[pick])

推荐阅读