quarta-feira, 22 de junho de 2016

Convertendo dados diversos para inteiro no python

Uma das dificuldades do python para quem já está acostumado com o tryparse() do c# é converter um objeto qualquer para outro tipo porém sem ter a certeza de que o mesmo está no formato correto e que não retornará um erro, como no python não existe nativamente, segue um exemplo de script que simula o tryparse() convertendo para inteiro.

def ignore_exception(IgnoreException=Exception,DefaultVal=None):
    """ Decorator for ignoring exception from a function
    e.g.   @ignore_exception(DivideByZero)
    e.g.2. ignore_exception(DivideByZero)(Divide)(2/0)
    """
    def dec(function):
        def _dec(*args, **kwargs):
            try:
                return function(*args, **kwargs)
            except IgnoreException:
                return DefaultVal
        return _dec
    return dec

sint = ignore_exception(ValueError)(int)
print sint("Hello World") # prints none
print sint("1340") # prints 1340

terça-feira, 14 de junho de 2016

Download de um shapefile via linha de comando com ogr2ogr

Um recurso muito fácil para realizar o download de um arquivo shapefile de um banco de dados Postgres com todos seu atributos.

ogr2ogr -overwrite -skipfailures -t_srs EPSG:4326 -f 'ESRI Shapefile' {shp} PG:'host={host} user={user} dbname={db} password={key}' -sql 'SELECT * FROM {table}'


Exportando uma query do Postgres para CSV

Um recurso muito útil do Postgres é o recurso de exportar o resultado de uma query para o formato csv que pode ser lido por diversos softwares.

Copy (Select * From tabela) To '/tmp/tabela.csv' With CSV DELIMITER ';' HEADER;