首页 > 解决方案 > 在日期字段中查找无效值

问题描述

我有带有列的文本文件,Date并且在日期列中也有一些错误的数据,例如 space和字符ABC。我只想将那些具有字符的记录保存到名为Error_file.txt.

试过:

import dateutil.parser as dparser
from dateutil.parser import parse

datelist = ["11/Jan/2018 01:01:00", "" ,"01/01/17", "2016-01-02","KK"]

def is_date(string):
    try:
        parse(string)
        return True
    except ValueError:
        return False

with open('output.txt', 'w') as output:
    with open('error_file.txt', 'w') as error:
        for i in datelist:
            if is_date(str(datelist)) == True:
                #WRITE TO Output File
                print dparser.parse(i, fuzzy=True).date()
            else:
                #WRITE TO Error File
                print('Error line')

在上面给出的记录中,KK应保存在Error_file.txt.

但得到以下输出:

Error line
Error line
Error line
Error line 
Error line

标签: pythonpython-2.7

解决方案


您需要将每个元素传递给函数。

前任:

from dateutil.parser import parse

datelist = ["11/Jan/2018 01:01:00", "" ,"01/01/17", "2016-01-02","KK"]

def is_date(string):
    try:
        parse(string)
        return True
    except ValueError:
        return False
for i in datelist:
    print is_date(i)         #Update 

推荐阅读