python - Python:同一函数中所需变量的名称和“内容”
问题描述
contains 中的每个变量Queries
都包含一个 SQL 查询。例如DF_Articles = 'Select * from Article_Master'
. 出于这个原因pd.read_sql_query
,我的部分功能有效。
什么不起作用:我想创建和存储以查询命名的 CSV 文件,每个文件都包含查询的内容。
但是当我尝试存储它们(即Query_csv.to_csv('SQL_data/{}.csv'.format(Query))
)时,该变量Query
包含整个 SQL 查询而不仅仅是名称(即DF_Articles
)。是否有解决方法,或者我只是没有看到明显的东西?
Queries = [DF_TripHeader, DF_Articles]
def get_data_from_sql():
if not os.path.exists('SQL_data'):
os.makedirs('SQL_data')
for Query in Queries:
if not os.path.exists('SQL_data/{}.csv'.format(Query)):
Query_DF = pd.read_sql_query(Query,Conn_SQL)
Query_DF.to_csv('SQL_data/{}.csv'.format(Query))
else:
print('Already downloaded {}'.format(Query))
get_data_from_sql()
编辑:根据handras 和doctorlove 的输入进行了更改。现在可以了!
Queries = {"DF_TripHeader":DF_TripHeader,"DF_Articles":DF_Articles}
def get_data_from_sql():
if not os.path.exists('SQL_data'):
os.makedirs('SQL_data')
for name, Query in Queries.items():
if not os.path.exists('SQL_data/{}.csv'.format(name)):
Query_csv = pd.read_sql_query(Query,Conn_SQL)
Query_csv.to_csv('SQL_data/{}.csv'.format(name))
else:
print('Already downloaded {}'.format(name))
get_data_from_sql()`
解决方案
我会让收集器变量成为字典。
Queries = {"DF_TripHeader" : DF_TripHeader, "DF_Articles" : DF_Articles}
现在您可以像这样迭代它:
for name, query in Queries.items():
...
如果您觉得声明查询然后存储在字典中是多余的,您可以一步完成。
Queries = {
"DF_TripHeader" : "Select * from TripHeader",
"DF_Articles" : "Select * from Article_Master"
}
推荐阅读
- javascript - 如何将按钮添加到传单地图上的开/关标记?
- python - 比较嵌套字符串列表的快速方法
- c# - 适用于 MS Teams 的 C# Bot Framework - 如何将临时主动消息作为新对话发送
- firebase - Firebase 规则使 sha1
- python-3.x - 当使用 Python/NLU 对结构化数据框进行查询时,如何提取有意义的提取?
- jenkins - 无法安装 Jenkins Slave - 作为服务
- html - 使用 JSTL 时,li 标签中的类保持分离
- javascript - Gravity Forms JS 在 AJAX 提交失败时被删除
- javascript - 使用javascript插入跨度环绕链接文本
- ruby-on-rails - rake db:mysql2 gem 的迁移错误 - 未加载库:libssl.1.0.0.dylib