From de10c58391efe2591425c07039199963b2fa8b54 Mon Sep 17 00:00:00 2001 From: Rohan Jain Date: Fri, 31 Jan 2020 18:02:22 +0530 Subject: [PATCH 1/2] edited date field parsing to handle NULL values --- dbfread/field_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbfread/field_parser.py b/dbfread/field_parser.py index e54ccb2..7cb1adb 100644 --- a/dbfread/field_parser.py +++ b/dbfread/field_parser.py @@ -91,7 +91,7 @@ def parseD(self, field, data): try: return datetime.date(int(data[:4]), int(data[4:6]), int(data[6:8])) except ValueError: - if data.strip(b' 0') == b'': + if ''.join(data.decode().split('\x00')) == '': # A record containing only spaces and/or zeros is # a NULL value. return None From 0f7b34c7b455f84eb61c1d1eeeccb8316fe966ab Mon Sep 17 00:00:00 2001 From: Rohan Jain Date: Tue, 4 Feb 2020 14:07:47 +0530 Subject: [PATCH 2/2] added another case for null date entry --- dbfread/field_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbfread/field_parser.py b/dbfread/field_parser.py index 7cb1adb..4d9e924 100644 --- a/dbfread/field_parser.py +++ b/dbfread/field_parser.py @@ -91,7 +91,7 @@ def parseD(self, field, data): try: return datetime.date(int(data[:4]), int(data[4:6]), int(data[6:8])) except ValueError: - if ''.join(data.decode().split('\x00')) == '': + if (''.join(data.decode().split('\x00')) == '') or (data.strip(b' 0') == b''): # A record containing only spaces and/or zeros is # a NULL value. return None