python - 如何将函数属性用作python对象以及字符串
问题描述
基本上我的代码看起来像这样被一些日志记录包围:
df_name.to_sql('df_name', engine, index=False)
我想做的是将它包装成一个函数并使用df_name
两次:
def df_2_sql(df):
df.to_sql(f'{df}', engine, index=False)
df_list = [df_table_a, df_table_b, df_table_c]
for df in df_list:
df_2_sql(df)
...我预计f'{df}'
会工作,但遗憾的是没有。我想将 df_list 用作熊猫对象以及to_sql()
函数中表名的一部分。
我已经尝试过使用两个列表
df_list = [df_table_a, df_table_b, df_table_c]
df_list = ['df_table_a', 'df_table_b', 'df_table_c']
..和一个需要两个参数的函数,但感觉不正确或不聪明。我究竟做错了什么?
解决方案
使用字典
将变量名转换为字符串不是一个好主意。如果您需要此功能,请构建一个字典并将键值对提供给您的函数:
def df_2_sql(df, name):
df.to_sql(name, engine, index=False)
df_dict = {'df_table_a': df_table_a,
'df_table_b': df_table_b,
'df_table_c': df_table_c}
for name, df in df_dict.items():
df_2_sql(df, name)
如果这看起来冗长且效率低下,请注意您必须在之前的代码中的某处df_table_a
定义,df_table_b
等。只需从一开始就使用字典并分配给,等。df_dict['df_table_a']
df_dict['df_table_b']
推荐阅读
- javascript - myObj.param?.otherParam 运算符有什么作用以及如何使用它?
- python - 在 GCP App Engine 上部署 Django、Django REST Framework 后端和 VueJS + webpack 前端(标准)
- php - is_category 没有在 wordpress 中使用自定义帖子类型的循环内获取数据
- javascript - 是否可以将 html 主页转换为 react 组件以在 Index.js Create-React-App 中呈现
- markdown - 预览 $ 登录 PhpStorm 的 Markdown 问题
- file - DSC 文件资源 - 覆盖/替换文件内容
- javascript - 创建两侧无线电波动画
- javascript - NWebSec 非 MVC WebForms ASPX .Net 4.6.1 C# - 配置不起作用
- laravel - [] 错误、主管和 Laravel 没有连接器?
- reactjs - 在解决所有 Promise 之前,渲染不会显示更改