Skip to content

Instantly share code, notes, and snippets.

@peczenyj
Last active April 19, 2016 10:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peczenyj/6484186833d04f5c88ee to your computer and use it in GitHub Desktop.
Save peczenyj/6484186833d04f5c88ee to your computer and use it in GitHub Desktop.
script para verificar quantidade de coligações entre partidos nas eleições para presidente + estaduais
#!/bin/perl
use strict;
use warnings;
use JSON qw(decode_json);
use Text::Table;
use LWP::Simple;
my $URL = "http://estaticog1.globo.com/2014/07/Coligacoes/eleicao.json";
my $data = decode_json( get ( $URL ) );
my @coligacoes = map { [ split ";" ] } map { s/\s//g; $_ } grep { defined } map { $_->{partido} } map { @{$_} } values %{$data} ;
my %tabela;
foreach my $coligacao ( @coligacoes ) {
my @partidos = @{ $coligacao };
foreach my $p1 (@partidos) {
$tabela{$p1} = {} unless $tabela{$p1};
foreach my $p2 (@partidos) {
next if $p1 eq $p2;
$tabela{$p1}->{$p2}++;
}
}
}
my @partidos = sort keys %tabela;
my $tb = Text::Table->new( "-",@partidos );
my @lines;
foreach my $partido (@partidos) {
my @qtde = map { $tabela{$partido}->{$_} // '-' } @partidos;
push @lines, [ $partido, @qtde ];
}
$tb->load(@lines);
print $tb;
$ perl coligacoes.pl
- DEM PCB PCO PCdoB PDT PEN PHS PMDB PMN PP PPL PPS PR PRB PROS PRP PRTB PSB PSC PSD PSDB PSDC PSL PSOL PSTU PT PTB PTC PTN PTdoB PV SD
DEM - - - 6 8 12 10 10 11 9 4 13 12 8 7 11 6 8 14 11 16 12 14 - - 3 10 9 10 6 12 14
PCB - - - - - - - - - - - - - - - - - - - - - - - 4 5 - - - - - - -
PCO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PCdoB 6 - - - 15 6 8 12 5 8 12 5 9 10 14 6 8 10 4 9 3 9 10 1 - 19 10 10 10 8 11 4
PDT 8 - - 15 - 6 8 10 6 10 6 8 8 12 11 8 4 10 8 10 7 8 11 - - 13 14 8 6 6 12 6
PEN 12 - - 6 6 - 16 8 12 12 5 12 10 14 10 9 10 10 14 14 15 12 15 - - 5 10 14 14 16 10 14
PHS 10 - - 8 8 16 - 10 11 11 8 11 12 12 13 11 9 11 13 12 11 11 17 - - 8 12 10 13 14 12 11
PMDB 10 - - 12 10 8 10 - 5 7 7 10 9 11 13 10 7 8 11 12 9 12 9 - - 9 7 6 13 8 10 8
PMN 11 - - 5 6 12 11 5 - 10 6 14 11 11 6 6 6 7 13 14 13 12 11 1 - 3 14 10 9 14 9 11
PP 9 - - 8 10 12 11 7 10 - 5 17 12 10 9 7 5 9 11 13 14 9 13 - - 6 15 15 6 12 9 15
PPL 4 - - 12 6 5 8 7 6 5 - 5 6 6 9 6 7 7 4 4 2 7 10 - - 8 7 7 8 5 7 4
PPS 13 - - 5 8 12 11 10 14 17 5 - 14 12 8 11 5 14 16 13 21 17 15 - - 1 13 16 11 12 10 17
PR 12 - - 9 8 10 12 9 11 12 6 14 - 9 14 9 6 7 13 12 12 12 13 - - 7 14 11 10 11 12 11
PRB 8 - - 10 12 14 12 11 11 10 6 12 9 - 11 9 6 11 15 11 13 16 11 - - 9 13 9 13 14 11 9
PROS 7 - - 14 11 10 13 13 6 9 9 8 14 11 - 10 5 7 8 10 9 11 10 - - 11 10 10 10 9 12 10
PRP 11 - - 6 8 9 11 10 6 7 6 11 9 9 10 - 8 12 12 7 11 13 12 - - 6 11 8 10 3 8 11
PRTB 6 - - 8 4 10 9 7 6 5 7 5 6 6 5 8 - 8 6 9 4 5 9 - - 5 6 8 10 7 6 7
PSB 8 - - 10 10 10 11 8 7 9 7 14 7 11 7 12 8 - 10 9 11 13 15 1 - 5 8 8 10 9 7 11
PSC 14 - - 4 8 14 13 11 13 11 4 16 13 15 8 12 6 10 - 13 16 14 12 - - 4 15 12 12 14 12 13
PSD 11 - - 9 10 14 12 12 14 13 4 13 12 11 10 7 9 9 13 - 14 13 12 - - 7 12 12 9 15 11 14
PSDB 16 - - 3 7 15 11 9 13 14 2 21 12 13 9 11 4 11 16 14 - 14 13 - - - 10 14 11 11 9 20
PSDC 12 - - 9 8 12 11 12 12 9 7 17 12 16 11 13 5 13 14 13 14 - 13 - - 5 12 8 14 12 10 10
PSL 14 - - 10 11 15 17 9 11 13 10 15 13 11 10 12 9 15 12 12 13 13 - - - 7 13 14 13 12 13 12
PSOL - 4 - 1 - - - - 1 - - - - - - - - 1 - - - - - - 10 1 - - - - - -
PSTU - 5 - - - - - - - - - - - - - - - - - - - - - 10 - - - - - - - -
PT 3 - - 19 13 5 8 9 3 6 8 1 7 9 11 6 5 5 4 7 - 5 7 1 - - 10 6 5 7 9 2
PTB 10 - - 10 14 10 12 7 14 15 7 13 14 13 10 11 6 8 15 12 10 12 13 - - 10 - 11 7 11 11 10
PTC 9 - - 10 8 14 10 6 10 15 7 16 11 9 10 8 8 8 12 12 14 8 14 - - 6 11 - 10 11 13 14
PTN 10 - - 10 6 14 13 13 9 6 8 11 10 13 10 10 10 10 12 9 11 14 13 - - 5 7 10 - 11 9 11
PTdoB 6 - - 8 6 16 14 8 14 12 5 12 11 14 9 3 7 9 14 15 11 12 12 - - 7 11 11 11 - 9 9
PV 12 - - 11 12 10 12 10 9 9 7 10 12 11 12 8 6 7 12 11 9 10 13 - - 9 11 13 9 9 - 7
SD 14 - - 4 6 14 11 8 11 15 4 17 11 9 10 11 7 11 13 14 20 10 12 - - 2 10 14 11 9 7 -
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment