繁体   English   中英

Python:如果标头存在,则用作变量

[英]Python: If header exists, use as variable

我正在与具有许多列(超过1000个)的HDUList一起工作。 这些列与通过外部代码拟合的星团中星系的特征有关。 列应以“ ser”或“ dev”结尾。 但是,某些列太长,名称被切断(例如:LOGRE_F3mF2_F850LPse或eLOGRE_F3mF2_F850LPs)

我正在定义函数以对数据执行各种操作。 由于名称不同,我很难系统地选择所需的列。

当前程序(与问题有关的部分):

def function(xaxisroot,yaxisroot,otheroptions):
  xaxis = xaxisroot + '_avg_f850lpser' 
  yaxis = yaxisroot + '_F' + str(region[0]) + 'mF' + str(region[1]) + '_f850lpser'

function('logre','logre')

由于该列实际上是:'LOGRE_avg_F850LPse',我得到了错误(示例):

KeyError: "Key 'logre_avg_f850lpser' does not exist."

尝试使用hasattr(object,property)来检测密钥是否确实存在。 否则,请尝试重组您的词典,以免出现像这样的怪异名字。

看起来名字的截断是20个字符。 如果是这样,您可以尝试以下方法:

key = root + '_avg_f850lpser' 
key = key[:20]

这样可以确保您的key始终小于或等于20个字符,并在字符串的右端进行修整(因为出现截断的地方)。

如果20个字符不是(总是)截止的地方,则需要显示更多的截止列键示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM