Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[PyBr11] Lendo dados tabulares: versão pythônica

[PyBr11] Lendo dados tabulares: versão pythônica

Slides da lightning talk que ministrei na PythonBrasil[11] sobre a biblioteca rows, que facilita a leitura, escrita e manipulação de dados tabulares com Python, não importa o formato em que esse dado esteja (CSV, JSON, TXT, HTML, XLS, XLSX, SQLite etc.).

Palestra apresentada no dia 10 de novembro de 2015.

Contatos:
- GitHub: https://github.com/turicas/rows
- Twitter: https://twitter.com/turicas

Álvaro Justen

November 10, 2015
Tweet

More Decks by Álvaro Justen

Other Decks in Technology

Transcript

  1. Lendo dados tabulares: Versão Pythônica Turicas aka Álvaro Justen XI

    PythonBrasil 10 de novembro de 2015, São José dos Campos/SP
  2. Patrocinadores são importantes, mas retirar voz da comunidade para dar

    voz a quem já tem voz no momento mais democrático do evento não é legal! =/
  3. CSV

  4. #comofaz? #csv i m p o r t c s

    v r e a d e r = c s v . D i c t R e a d e r ( o p e n ( ' t e s o u r o - d i r e t o . c s v ' ) ) # T O D O : i d e n t i f i c a r d i a l e t o d o C S V f o r r o w i n r e a d e r : p r i n t r o w # v a l o r e s s ã o s t r i n g s . S T R I N G S ! # T O D O : f a z e r c o n v e r s o r d e d a t e t i m e # T O D O : f a z e r c o n v e r s o r d e d a t e # T O D O : f a z e r c o n v e r s o r d e d e c i m a l # T O D O : f a z e r c o n v e r s o r d e p e r c e n t
  5. #comofaz? #html p i p i n s t a

    l l l x m l i m p o r t l x m l . e t r e e f i l e n a m e = ' t e s o u r o - d i r e t o . h t m l ' h t m l = o p e n ( f i l e n a m e ) . r e a d ( ) t r e e = l x m l . e t r e e . f r o m s t r i n g ( h t m l ) t a b l e = t r e e . x p a t h ( ' / / t a b l e ' ) [ 0 ] # . . . c h a t o c h a t o c h a t o . . . # t e n t a t i v a # e r r o # e r r o # e r r o
  6. ...

  7. XLS

  8. #comofaz? #xls p i p i n s t a

    l l x l r d i m p o r t x l r d f i l e n a m e = ' t e s o u r o - d i r e t o . x l s ' b o o k = x l r d . o p e n _ w o r k b o o k ( f i l e n a m e , f o r m a t t i n g _ i n f o = T r u e ) s h e e t = b o o k . s h e e t _ b y _ i n d e x ( 0 ) N U M E R O _ D E _ C O L U N A S = 7 # W T F ? h e a d e r = [ s h e e t . c e l l ( 0 , c o l ) . v a l u e f o r c o l i n r a n g e ( N U M E R O _ D E _ C O L U N A S N U M E R O _ D E _ L I N H A S = 1 9 # W T F ? d a t a = [ [ s h e e t . c e l l ( r o w , c o l ) . v a l u e f o r c o l i n r a n g e ( N U M E R O _ D E _ C O L U N A S f o r r o w i n r a n g e ( 1 , N U M E R O _ D E _ L I N H A S + 1 ) ] f o r r o w _ d a t a i n d a t a : r o w = d i c t ( z i p ( h e a d e r , r o w _ d a t a ) ) p r i n t r o w # T O D O : f a z e r c o n v e r s o r d e d a t e t i m e # T O D O : f a z e r c o n v e r s o r d e d a t e # T O D O : f a z e r c o n v e r s o r d e d e c i m a l # T O D O : f a z e r c o n v e r s o r d e p e r c e n t
  9. Resultado... { u ' p r e c o _

    c o m p r a ' : 0 . 0 , u ' t i m e s t a m p ' : 4 2 3 1 4 . 7 3 8 1 9 4 4 4 4 4 4 , u ' v e n c i m e n t o '
  10. . . . , u ' t i m e

    s t a m p ' : 4 2 3 1 4 . 7 3 8 1 9 4 4 4 4 4 4 , . . .
  11. Problemas APIs diferentes Entender o formato (mas eu só quero

    os dados...) Aprender a usar a biblioteca Converter os dados (acha que a biblioteca vai converter?) (isso é só pra ler...) Testar os conversores (e o tempo?)
  12. rows to the rescue p i p i n s

    t a l l r o w s a p t - g e t i n s t a l l r o w s d n f i n s t a l l r o w s github.com/turicas/rows
  13. #comofaz? #csv #dojeitocerto i m p o r t r

    o w s t a b l e 1 = r o w s . i m p o r t _ f r o m _ c s v ( ' t e s o u r o - d i r e t o . c s v ' ) f o r r o w i n t a b l e 1 : p r i n t r o w
  14. #comofaz? #xls #dojeitocerto i m p o r t r

    o w s t a b l e 2 = r o w s . i m p o r t _ f r o m _ x l s ( ' t e s o u r o - d i r e t o . x l s ' ) f o r r o w i n t a b l e 2 : p r i n t r o w
  15. #comofaz? #html #dojeitocerto i m p o r t r

    o w s t a b l e 3 = r o w s . i m p o r t _ f r o m _ h t m l ( ' t e s o u r o - d i r e t o . h t m l ' ) f o r r o w i n t a b l e 3 : p r i n t r o w
  16. a s s e r t l i s t

    ( t a b l e 1 ) = = l i s t ( t a b l e 2 ) = = l i s t ( t a b l e 3 )
  17. p r i n t t a b l e

    1 [ 0 ] R o w ( t i m e s t a m p = d a t e t i m e . d a t e t i m e ( 2 0 1 5 , 1 1 , 6 , 1 7 , 4 3 ) , t i t u l o = u ' T e s o u r o I P C A + c o m J u r o s S e m e s t r a i s 2 0 1 7 ( N T N B ) ' , v e n c i m e n t o = d a t e t i m e . d a t e ( 2 0 1 7 , 5 , 1 5 ) , t a x a _ c o m p r a = D e c i m a l ( ' 0 . 0 7 0 2 ' ) , t a x a _ v e n d a = D e c i m a l ( ' 0 . 0 6 3 ' ) , p r e c o _ c o m p r a = 0 . 0 , p r e c o _ v e n d a = 2 7 9 2 . 9 7 ) # n a m e d t u p l e # F T W \ o /
  18. Funcionalidades API única (o formato não importa) Leitura e escrita

    CSV, HTML, XLS, XLSX, JSON, TXT, SQLite... Conversão automática de dados Tem uma command-line interface! \o/ Eu já fiz os testes
  19. Obrigado! (: Turicas aka Álvaro Justen { , , ,

    }/turicas twitter.com github.com youtube.com slideshare.net [email protected] turicas.info