SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Lendo dados tabulares:
Versão Pythônica
Turicas aka Álvaro Justen
XI PythonBrasil
10 de novembro de 2015, São José dos Campos/SP
Turicas, prazer! =)
{ , , ,
}/turicas
twitter.com github.com youtube.com
slideshare.net
alvarojusten@gmail.com
turicas.info
#offtopic
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! =/
#temqueverissoaí
Bora discutir no bar depois! =)
CSV
#comofaz? #csvimportcsv
reader=csv.DictReader(open('tesouro-direto.csv'))
#TODO:identificardialetodoCSV
forrowinreader:
printrow #valoressãostrings.STRINGS!
#TODO:fazerconversordedatetime
#TODO:fazerconversordedate
#TODO:fazerconversordedecimal
#TODO:fazerconversordepercent
HTML
HTML
"A vida não é a porra do teu Toddynho
gelado, não!"
#comofaz?
#htmlpipinstalllxml
importlxml.etree
filename='tesouro-direto.html'
html=open(filename).read()
tree=lxml.etree.fromstring(html)
table=tree.xpath('//table')[0]
#...chatochatochato...
#tentativa
#erro
#erro
#erro
...
XLS
#comofaz? #xls
pipinstallxlrd
importxlrd
filename='tesouro-direto.xls'
book=xlrd.open_workbook(filename,formatting_info=True)
sheet=book.sheet_by_index(0)
NUMERO_DE_COLUNAS=7#WTF?
header=[sheet.cell(0,col).valueforcolinrange(NUMERO_DE_COLUNAS
NUMERO_DE_LINHAS=19#WTF?
data=[[sheet.cell(row,col).valueforcolinrange(NUMERO_DE_COLUNAS
forrowinrange(1,NUMERO_DE_LINHAS+1)]
forrow_dataindata:
row=dict(zip(header,row_data))
printrow
#TODO:fazerconversordedatetime
#TODO:fazerconversordedate
#TODO:fazerconversordedecimal
#TODO:fazerconversordepercent
Resultado...{u'preco_compra':0.0,u'timestamp':42314.73819444444,u'vencimento'
...,u'timestamp':42314.73819444444,...
ProblemasAPIs diferentes
Entender o formato (mas eu só quero os dados...)
Aprender ausar abiblioteca
Converter os dados (achaque abibliotecavaiconverter?)
(isso é só praler...)
Testar os conversores (e o tempo?)
rows to the
rescuepip install rows
apt-get install rows
dnf install rows
github.com/turicas/rows
#comofaz? #csv #dojeitocerto
importrows
table1=rows.import_from_csv('tesouro-direto.csv')
forrowintable1:
printrow
#comofaz? #xls #dojeitocerto
importrows
table2=rows.import_from_xls('tesouro-direto.xls')
forrowintable2:
printrow
#comofaz? #html
#dojeitocerto
importrows
table3=rows.import_from_html('tesouro-direto.html')
forrowintable3:
printrow
assertlist(table1)==list(table2)==list(table3)
printtable1[0]
Row(timestamp=datetime.datetime(2015,11,6,17,43),
titulo=u'TesouroIPCA+comJurosSemestrais2017(NTNB)',
vencimento=datetime.date(2017,5,15),
taxa_compra=Decimal('0.0702'),
taxa_venda=Decimal('0.063'),
preco_compra=0.0,
preco_venda=2792.97)
#namedtuple#FTWo/
Funcionalidades
API única(o formato não importa)
Leiturae escrita
CSV, HTML, XLS, XLSX, JSON, TXT, SQLite...
Conversão automática de dados
Tem umacommand-line interface!o/
Eujá fiz os testes
#meajudaPython 3
Outros plugins (PDF, OFX, ODS, DBF...)
Decisões de arquitetura
Sprintnaquarta?o/
Obrigado! (:
Turicas aka Álvaro Justen
{ , , ,
}/turicas
twitter.com github.com youtube.com
slideshare.net
alvarojusten@gmail.com
turicas.info

Mais conteúdo relacionado

Destaque

Libertando dados públicos com ferramentas livres
Libertando dados públicos com ferramentas livresLibertando dados públicos com ferramentas livres
Libertando dados públicos com ferramentas livresÁlvaro Justen
 
Software Livre versus Open Source
Software Livre versus Open SourceSoftware Livre versus Open Source
Software Livre versus Open SourceÁlvaro Justen
 
Raspberry pi – primeiros passos
Raspberry pi – primeiros passosRaspberry pi – primeiros passos
Raspberry pi – primeiros passosFelipe Meganha
 
Explorar o raspberry pi final
Explorar o raspberry pi finalExplorar o raspberry pi final
Explorar o raspberry pi finalwhitspirit
 
Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos
Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos
Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos Lietuvos kompiuterininkų sąjunga
 
Educação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiEducação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiMario Sergio
 
eBook Home Office
eBook Home OfficeeBook Home Office
eBook Home OfficeAldo Bogea
 
Palestra sobre Arduino e Raspberry Pi (Totvs)
Palestra sobre Arduino e Raspberry Pi (Totvs)Palestra sobre Arduino e Raspberry Pi (Totvs)
Palestra sobre Arduino e Raspberry Pi (Totvs)Walter Coan
 
Arduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresArduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresÁlvaro Justen
 
Química Geral 2016/1 Aula 03
Química Geral 2016/1 Aula 03Química Geral 2016/1 Aula 03
Química Geral 2016/1 Aula 03Ednilsom Orestes
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaÁlvaro Justen
 
Química Geral 2016/1 Aula 04
Química Geral 2016/1 Aula 04Química Geral 2016/1 Aula 04
Química Geral 2016/1 Aula 04Ednilsom Orestes
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Raspberry-PI introduction
Raspberry-PI introductionRaspberry-PI introduction
Raspberry-PI introductionBasavaraj Sagar
 
Robótica: Introdução e Aplicações
Robótica: Introdução e AplicaçõesRobótica: Introdução e Aplicações
Robótica: Introdução e AplicaçõesFelipe Martins
 

Destaque (19)

Libertando dados públicos com ferramentas livres
Libertando dados públicos com ferramentas livresLibertando dados públicos com ferramentas livres
Libertando dados públicos com ferramentas livres
 
Software Livre versus Open Source
Software Livre versus Open SourceSoftware Livre versus Open Source
Software Livre versus Open Source
 
Raspberry pi – primeiros passos
Raspberry pi – primeiros passosRaspberry pi – primeiros passos
Raspberry pi – primeiros passos
 
Explorar o raspberry pi final
Explorar o raspberry pi finalExplorar o raspberry pi final
Explorar o raspberry pi final
 
Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos
Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos
Jurgis PRALGAUSKIS. Modernios programavimo mokymo(-si) aplinkos
 
Química Geral Aula 11
Química Geral Aula 11Química Geral Aula 11
Química Geral Aula 11
 
Educação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiEducação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry Pi
 
eBook Home Office
eBook Home OfficeeBook Home Office
eBook Home Office
 
Palestra sobre Arduino e Raspberry Pi (Totvs)
Palestra sobre Arduino e Raspberry Pi (Totvs)Palestra sobre Arduino e Raspberry Pi (Totvs)
Palestra sobre Arduino e Raspberry Pi (Totvs)
 
Arduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware LivresArduino: Robótica e Automação com Software e Hardware Livres
Arduino: Robótica e Automação com Software e Hardware Livres
 
Química Geral 2016/1 Aula 03
Química Geral 2016/1 Aula 03Química Geral 2016/1 Aula 03
Química Geral 2016/1 Aula 03
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira Pythônica
 
Química Geral 2016/1 Aula 04
Química Geral 2016/1 Aula 04Química Geral 2016/1 Aula 04
Química Geral 2016/1 Aula 04
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Raspberry-PI introduction
Raspberry-PI introductionRaspberry-PI introduction
Raspberry-PI introduction
 
Robótica: Introdução e Aplicações
Robótica: Introdução e AplicaçõesRobótica: Introdução e Aplicações
Robótica: Introdução e Aplicações
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 

Mais de Álvaro Justen

Sobre os ombos de gigantes
Sobre os ombos de gigantesSobre os ombos de gigantes
Sobre os ombos de gigantesÁlvaro Justen
 
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisProjeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisÁlvaro Justen
 
Dados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaDados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaÁlvaro Justen
 
A era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasA era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasÁlvaro Justen
 
Realmente precisamos de big data?
Realmente precisamos de big data?Realmente precisamos de big data?
Realmente precisamos de big data?Álvaro Justen
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoÁlvaro Justen
 
Brasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonBrasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonÁlvaro Justen
 
#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência BrasileiraÁlvaro Justen
 
Brasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaBrasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaÁlvaro Justen
 
Dados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaDados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaÁlvaro Justen
 
Jornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilJornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilÁlvaro Justen
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Álvaro Justen
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonÁlvaro Justen
 
Dados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteDados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteÁlvaro Justen
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Álvaro Justen
 
Arduino - Dicas & Truques
Arduino - Dicas & TruquesArduino - Dicas & Truques
Arduino - Dicas & TruquesÁlvaro Justen
 
Android e Arduino para automação residencial
Android e Arduino para automação residencialAndroid e Arduino para automação residencial
Android e Arduino para automação residencialÁlvaro Justen
 

Mais de Álvaro Justen (19)

Sobre os ombos de gigantes
Sobre os ombos de gigantesSobre os ombos de gigantes
Sobre os ombos de gigantes
 
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos AcessíveisProjeto Brasil.IO COVID-19: Dados Públicos Acessíveis
Projeto Brasil.IO COVID-19: Dados Públicos Acessíveis
 
Dados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeitaDados abertos, Python e PostgreSQL: a combinação perfeita
Dados abertos, Python e PostgreSQL: a combinação perfeita
 
A era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crençasA era da pós-verdade - minhas reflexões e crenças
A era da pós-verdade - minhas reflexões e crenças
 
Realmente precisamos de big data?
Realmente precisamos de big data?Realmente precisamos de big data?
Realmente precisamos de big data?
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de Comando
 
Brasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com PythonBrasil.IO: Libertação de Dados Públicos, com Python
Brasil.IO: Libertação de Dados Públicos, com Python
 
#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira#opendata #fail: Causos da Transparência Brasileira
#opendata #fail: Causos da Transparência Brasileira
 
Brasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais DemocraciaBrasil.IO: Dados Abertos para Mais Democracia
Brasil.IO: Dados Abertos para Mais Democracia
 
Dados abertos, direito autoral e democracia
Dados abertos, direito autoral e democraciaDados abertos, direito autoral e democracia
Dados abertos, direito autoral e democracia
 
Jornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no BrasilJornalismo de Dados: Programando a Democracia no Brasil
Jornalismo de Dados: Programando a Democracia no Brasil
 
Python no Jornalismo
Python no JornalismoPython no Jornalismo
Python no Jornalismo
 
Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)Introdução a programação com Python (para jornalistas)
Introdução a programação com Python (para jornalistas)
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI Python
 
Dados Abertos e Meio Ambiente
Dados Abertos e Meio AmbienteDados Abertos e Meio Ambiente
Dados Abertos e Meio Ambiente
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011
 
Arduino - Dicas & Truques
Arduino - Dicas & TruquesArduino - Dicas & Truques
Arduino - Dicas & Truques
 
Android e Arduino para automação residencial
Android e Arduino para automação residencialAndroid e Arduino para automação residencial
Android e Arduino para automação residencial
 

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