for循环根据变量名导出数据
for loop to export data based on variable name
我有一个要导出到 excel 的变量列表。但是,我 运行 在创建 for
循环时遇到了问题。它似乎使用变量名的实际值而不是变量名,这是有道理的。我还试图用变量的名称命名 excel 文件,我认为我可以在 for
循环中使用 str(factor)
来实现。
表格的可变因素
factors= camelot.read_pdf('Name_pdf',flavor='stream',pages='1-2')
factors=[base_rate,territory_factor,tier_factor,protection_class_factors,age_of_home,protective_device_option,law_multi_new_construc,claim_free,new_home,tenure_aoi,prior_insurance_discount,deductible_peril,construction_type,dwelling_rating_limit,territory_adjustment_factor]
for factor in factors:
factor.export(str(factor)+'.xlsx',f='excel')
感谢帮助。
str(factor)
不会给出变量的名称。名称指的是对象,但通常你不能反其道而行之。
你可以试试:
factor_name = [k for k, v in locals().items() if v is factor and k != "factor"][0]
factor.export(factor_name+'.xlsx',f='excel')
虽然很讨厌。请记住,an object can have any number of names, or no name at all.
因为你已经知道文件名,你可以做一些非常简单的事情,比如:
factors= camelot.read_pdf('Name_pdf',flavor='stream',pages='1-2')
factor_names=['base_rate','territory_factor','tier_factor'] # etc..
for factor,factor_name in zip(factors,factor_names):
factor.export(factor_name+'.xlsx',f='excel')
我有一个要导出到 excel 的变量列表。但是,我 运行 在创建 for
循环时遇到了问题。它似乎使用变量名的实际值而不是变量名,这是有道理的。我还试图用变量的名称命名 excel 文件,我认为我可以在 for
循环中使用 str(factor)
来实现。
表格的可变因素
factors= camelot.read_pdf('Name_pdf',flavor='stream',pages='1-2')
factors=[base_rate,territory_factor,tier_factor,protection_class_factors,age_of_home,protective_device_option,law_multi_new_construc,claim_free,new_home,tenure_aoi,prior_insurance_discount,deductible_peril,construction_type,dwelling_rating_limit,territory_adjustment_factor]
for factor in factors:
factor.export(str(factor)+'.xlsx',f='excel')
感谢帮助。
str(factor)
不会给出变量的名称。名称指的是对象,但通常你不能反其道而行之。
你可以试试:
factor_name = [k for k, v in locals().items() if v is factor and k != "factor"][0]
factor.export(factor_name+'.xlsx',f='excel')
虽然很讨厌。请记住,an object can have any number of names, or no name at all.
因为你已经知道文件名,你可以做一些非常简单的事情,比如:
factors= camelot.read_pdf('Name_pdf',flavor='stream',pages='1-2')
factor_names=['base_rate','territory_factor','tier_factor'] # etc..
for factor,factor_name in zip(factors,factor_names):
factor.export(factor_name+'.xlsx',f='excel')