Manipulating Strings in Python

1

I have a list with n strings. Example:

lista = ['0004434-48.2010', 'UNIÃO, '(30 dias úteis) 03/07/2017', '13/07/2017', '0008767-77.2013', 'UNIÃO, '(10 dias úteis) 03/07/2017', '13/07/2017']

My program runs through this list, however all items are displayed as strings. I need:

  • Detect from them what is DATA format;
  • Treat this string (convert to date format);
  • Detect between them what has NUMBERS;
  • Handle this string (convert to numbers format).
  • Any ideas?

        
    asked by anonymous 12.07.2017 / 22:37

    2 answers

    4
    from datetime import datetime
    lista = ['0004434-48.2010',
     'UNIÃO',
     '(30 dias úteis) 03/07/2017',
     '13/07/2017',
     '0008767-77.2013',
     '2017',
     '(10 dias úteis) 03/07/2017',
     '13/07/2017']
    
    
    for s in lista:
      try:
        print('É data: ', datetime.strptime(s, '%d/%m/%Y'))
      except:
        try:
          print ('É numero, convertido para inteiro ',int(s))
        except:
          print('É string:  ', s )
    
      

    Output:

    É string:   0004434-48.2010
    É string:   UNIÃO
    É string:   (30 dias úteis) 03/07/2017
    É data:  2017-07-13 00:00:00
    É string:   0008767-77.2013
    É numero, convertido para inteiro  2017
    É string:   (10 dias úteis) 03/07/2017
    É data:  2017-07-13 00:00:00
    

    Alternative:

    ## Versão 2
    print ('#########################')
    
    for s1 in lista:
      for s in s1.split():
        try:
          print('É data: ', datetime.strptime(s, '%d/%m/%Y'))
        except:
          try:
            print ('É numero, convertido para inteiro ',int(s))
          except:
            print('É string:  ', s )
    
      

    Output:

    #########################
    É string:   0004434-48.2010
    É string:   UNIÃO
    É string:   (30
    É string:   dias
    É string:   úteis)
    É data:  2017-07-03 00:00:00
    É data:  2017-07-13 00:00:00
    É string:   0008767-77.2013
    É numero, convertido para inteiro  2017
    É string:   (10
    É string:   dias
    É string:   úteis)
    É data:  2017-07-03 00:00:00
    É data:  2017-07-13 00:00:00
    

    Run the code on repl.it.

        
    13.07.2017 / 03:37
    0

    Remembering that characters in single or double quotation marks form strings, so if you wrote each item in single quotation marks, each item would be a different string. If you want to use another format (date, for example), use the date format and so go

        
    12.07.2017 / 22:41