微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简化一系列 if 语句

如何解决简化一系列 if 语句

我是编码新手,我正在创建一个元数据转换函数,新文件的格式有一个日期和时间戳,格式为 yyyymmdd_hhmmss。我使用一系列 if 语句创建了以下代码,因为原始元数据将日/月列为一位数(必要时为双数。我认为有一种更优雅的方法来完成此任务并用于学习目的和可读性/简单性. 任何建议将不胜感激!任何其他简化代码的建议也将不胜感激,谢谢。

 for fileExt in fpath:
            with open(fileExt) as f:
                data = json.loads(f.read())
                if 'animalID' in data:
                    ext=fileExt.replace('\\MetaData.json','\\Miniscope\\MetaData.json')
                    animalID=data['animalID']
                    timeStamp=data['recordingStartTime']
                    year=str(timeStamp['year'])
                    month=str(timeStamp['month'])
                    if len(month) < 2:
                        month=str(0)+month
                    day=str(timeStamp['day'])
                    if len(day) < 2:
                        day=str(0)+day
                    second=str(timeStamp['second'])
                    if len(second) < 2:
                        second=str(0)+second
                    minute=str(timeStamp['minute'])
                    if len(minute) < 2:
                        minute=str(0)+minute
                    hour=str(timeStamp['hour'])
                    if len(hour) < 2:
                        hour=str(0)+hour
                    date=year+month+day+'_'+hour+minute+second
                    with open(ext) as d:
                        data2 = json.loads(d.read())
                        frameRate=float(data2['frameRate'])
                        jdict ={'origin':animalID,'fps':frameRate,'date':date,'orig_Meta':[data,data2]}
                        jsonFile=json.dumps(jdict,indent=4)
                        newFileName=ext.replace('\\MetaData.json','\\MetaDataTif.json')
                        n = open(newFileName,'w')
                        n.write(jsonFile)
                        n.close()

解决方法

这是您可以使用的解决方案


def adjust_value(value):
    if len(value) < 2:
        value = str(0) + value
    return value

for fileExt in fpath:
    with open(fileExt) as f:
        data = json.loads(f.read())
        if 'animalID' in data:
            ext=fileExt.replace('\\metaData.json','\\Miniscope\\metaData.json')
            animalID=data['animalID']
            timeStamp=data['recordingStartTime']
            year=str(timeStamp['year'])
            month=str(timeStamp['month'])

            month = adjust_value(month)
            day=str(timeStamp['day'])

            day = adjust_value(day)
            second=str(timeStamp['second'])

            second = adjust_value(second)
            minute=str(timeStamp['minute'])

            minute = adjust_value(minute)
            hour=str(timeStamp['hour'])

            hour = adjust_value(hour)
            date=year+month+day+'_'+hour+minute+second
           

            with open(ext) as d:
                data2 = json.loads(d.read())
                frameRate=float(data2['frameRate'])
                jdict ={'origin':animalID,'fps':frameRate,'date':date,'orig_meta':[data,data2]}
                jsonFile=json.dumps(jdict,indent=4)
                newFileName=ext.replace('\\metaData.json','\\metaDataTif.json')
                n = open(newFileName,'w')
                n.write(jsonFile)
                n.close()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。