【问题标题】:Logging message inside except exception除了异常之外的内部记录消息
【发布时间】:2022-10-02 17:10:52
【问题描述】:

当尝试失败时,我正在尝试使用日志记录。我有一个用于将日期字符串转换为日期时间格式的 for 循环。

例如,将“03/05/2021”转换为 2021-05-03。但是,有拼写错误的日期,例如 03/052021。如果循环遇到这样的拼写日期,我希望它创建一个日志。

for id in range(1,items):
    try:
        dt_bd_lists.append(datetime.strptime(bd_lists[i+1], \'%d/%m/%Y\'))
        #print(dt_bd_lists[id])
    except:
        dt_bd_lists.append(bd_lists[id+1])
        #LOG_FILENAME = \'error_log\'
        #logging.basicConfig(
        #filename=LOG_FILENAME,
        #level=logging.ERROR
        #)
        #logging.error(\'Error processing line %(lineno)d for ID %d\', id)

对于记录消息,我想创建“(ID)的错误处理(行号)。\”

不幸的是,我遇到了日志记录错误并且卡住了。什么会解决这个问题?

    标签: python logging standard-library


    【解决方案1】:

    这将不是帮助您进行日志记录,我需要日志记录产生的错误,但也许您可以“清理”您的数据。

    通过将所有斜杠/ 替换为空字符串"",您可以忽略这些拼写错误。然后你需要将日期的格式调整为"%d%m%Y",你就可以了(只需删除斜线)。

        from datetime import datetime
        
        date_strings = ["03/05/2021", "03/052021"]
        
        for date_string in date_strings:
            # replace / with empty string
            date_string = date_string.replace("/", "")  
        
            date_time_obj = datetime.strptime(date_string, '%d%m%Y')
            print(date_time_obj)
    

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 1970-01-01
      • 2013-09-02
      • 2019-03-02
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多