title: Python: parse(date) returns signed integer is greater than maximum
body: <p>Given a list of items like the following (columns separated by tab):</p>
  
  <ul>
  <li>9123456780 \t John Dude \t City of Address \t July 19, 1980 \t M</li>
  <li>9123456781 \t Jane Dudette \t Province of Address \t Aug 19, 1980 \t f</li>
  <li>9123456782 \t Sam Pol Data \t Etc. City \t 1/1/91 \t</li>
  <li>9123456783 \t May Anaise \t Some City \t 1993 \t f</li>
  <li>9123456784 \t Mark Mywards \t City of Address \t M</li>
  <li>9123456785 \t City of Address \t July 19, 1980 \t M</li>
  <li>9123456780 \t M</li>
  <li>Mira Nova \t City of Address \t July 19, 1980</li>
  </ul>
  
  <p>I am to determine which one is the MSISDN (10 digit number), name, address, date, and gender.</p>
  
  <p>I'm pretty sure this is impossible to do 100% correctly / accurately, due to the lack of comparison points, and often missing data.</p>
  
  <p>So here's what I did:</p>
  
  <p>Ran through the list, line by line. Each line is then split by tab (\t), becoming a list.
  Each item in the list is then tested in a for loop:</p>
  
  <pre><code>for item in csv_cols:
      if reg_msisdn.match(item):
          s_msisdn = item
      if item.lower() in list_male or item.lower() in list_female:
          s_gender = item
      if parse(item):
          s_birthdate = item
      if any(ext in item.lower() for ext in list_place) or any(ext in item.lower() for ext in list_ad):
          s_address = item
      else:
          s_name = item
  
      s_all = s_msisdn + "^" + s_name + "^" + s_address + "^" + s_birthdate + "^" + s_gender
  </code></pre>
  
  <p><strong>EDIT:</strong> I added a <code>csv_cols.remove(item)</code> after every <code>s_(value) = item</code> so that tested items will be removed already - it didn't change anything.</p>
  
  <ol>
  <li>All the <code>s_(value)</code> start off with <code>NULL</code> as text</li>
  <li>If any item is a 10 digit number (regex), it is considered as the <code>s_msisdn</code>.</li>
  <li>If any item is solely an m, f, male, female, it is considered as the <code>s_gender</code>.</li>
  <li>If any item has the keywords city, ave, etc. (list_ad) <strong>or</strong> matches an item in the list of places (list_place), it is considered as the <code>s_address</code>.</li>
  <li>If any item can be <a href="https://stackoverflow.com/questions/25341945/check-if-string-has-date-any-format?">parsed as a date</a>, it is automatically the <code>s_birthdate</code>.</li>
  <li>Else, it is <em>probably</em> the <code>s_name</code>.</li>
  <li><strong>EDIT:</strong> Remove said item from the list. </li>
  <li>The entire thing is in a Try-Exception block.</li>
  </ol>
  
  <p>I'm pretty sure there will be glaring holes in my logic here, but I couldn't really think of any other way to do it.</p>
  
  <p>That said, even with this scatter-brained logic, I've encountered issues, specifically with item no. 5 above, which unhelpfully returns the following error:</p>
  
  <p><code>signed integer is greater than maximum</code></p>
  
  <p>I know this because taking it out of the loop makes the rest of the code work.</p>
  
  <p>Can I have some help on this please?</p>
  
  <p>Thanks.</p>
  
  <p>P.S.: I'm using a Mac/UNIX if it means anything.</p>