Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte NDJSON para CSV de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
NDJSON para CSV
A aritmética aqui é mais simples que qualquer outra fonte deste site. NDJSON garante um registro completo por linha, então o número de linhas que você vai receber é o número de linhas no arquivo.
Isso torna a conversão previsível de um jeito que um array JSON não é. Se o arquivo tem 412.000 linhas você recebe 412.000 linhas mais um cabeçalho. Linhas em branco são puladas, incluindo a quebra final que quase todo escritor deixa.
Cada linha num arquivo NDJSON é independente, e nada obriga a segunda a carregar as chaves da primeira. Um fluxo de log que emite vários tipos de evento coloca tudo num arquivo só, com campos diferentes cada.
A conversão coleta toda chave vista em qualquer lugar do arquivo e dá uma coluna para cada uma, deixando células vazias onde uma linha não tinha aquele campo. Se isso descreve sua saída, filtrar o arquivo para um tipo de evento antes de converter costuma ser melhor que alargar a planilha.
Se uma linha não for JSON válido, a conversão não continua além dela. A mensagem diz qual linha: "Este arquivo não pôde ser lido como NDJSON — a linha 3 não é JSON válido."
Uma linha quebrada num log quase nunca significa um caractere estranho. Significa uma escrita truncada — um processo morto no meio, um arquivo rotacionado cortado numa fronteira. Com o número da linha em mãos, apagar ou reparar o final leva um comando.
Logging estruturado costuma aninhar: um objeto de requisição com um método, um objeto de usuário com um id. Isso é achatado em colunas nomeadas pelo caminho — request.method, user.id — com uma coluna por valor folha.
Um ou dois níveis produzem uma tabela que qualquer um consegue trabalhar. Estruturas mais profundas alargam rápido, e uma linha de log carregando um payload inteiro serializado vai produzir uma coluna por campo dentro dele.
Um registro carregando uma lista — tags, quadros de erro — é achatado em colunas numeradas: tags.0, tags.1, tags.2. Todo valor sobrevive e a tabela ganha uma coluna para a lista mais longa do arquivo.
Para análise isso raramente é o que se quer. Se o array é incidental, juntar num único texto antes de converter produz uma coluna legível. Se o array é o que está sendo analisado, o formato que você quer é uma linha por elemento.
Tipos são a principal baixa, e vale deixar claro que se perdem no destino em vez de na travessia. Os valores são escritos fielmente — um número como dígitos, um booleano como true ou false — mas CSV não tem sistema de tipos.
O Excel decide mal e previsivelmente: zeros à esquerda somem de identificadores, qualquer coisa com formato de data vira data. A solução é importar em vez de abrir — Dados, De Texto/CSV, com as colunas de identificador definidas como Texto.
Valores contendo vírgula, aspas ou quebra de linha são envolvidos em aspas duplas com aspas internas dobradas, a convenção RFC 4180. Dados de log dependem bastante disso — user agents, caminhos de requisição com query strings, mensagens de erro.
Se o destino é um pipeline de shell em vez de uma planilha, essas aspas são exatamente o que ferramentas ingênuas não implementam, e converter para valores separados por tabulação evita o problema todo.
A leitura é rápida e o limite é memória, porque o arquivo inteiro é lido em registros antes da primeira linha ser escrita. O nível gratuito aceita até 100 MB; dezenas de megabytes converte sem drama.
Acima disso, o formato de origem está a seu favor. NDJSON divide com segurança em qualquer fronteira de linha — split -l 500000 produz arquivos válidos — então converter um log muito grande em partes é legítimo, não um contorno.
A conversão é JavaScript puro rodando nesta aba. Nenhuma requisição carrega o arquivo a lugar nenhum, não há conta nem limite diário, e a aba de rede confirma isso.
Não é um detalhe para este par. Um log de produção guarda endereços IP, identificadores de sessão e caminhos de requisição — exatamente a categoria que a LGPD trata como dado pessoal quando há como identificar alguém, e que ninguém deveria colar num serviço web desconhecido.
| NDJSON | CSV | |
|---|---|---|
| Nome completo | Newline-Delimited JSON | Comma-Separated Values |
| Extensão do arquivo | .ndjson, .jsonl | .csv |
| Tipo de mídia | application/x-ndjson | text/csv |
| Publicado pela primeira vez | 2013 | 1972 |
| Especificação | — | RFC 4180 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | JSON | XLSX, JSON, Parquet |
pandas lê tanto NDJSON quanto CSV, então dá para comparar o resultado com o original sem um segundo programa.
CSV e de 1972, descrito em RFC 4180. Microsoft Excel, LibreOffice Calc e pandas leem o formato.
CSV foi publicado em 1972 e NDJSON em 2013. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.
Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.
É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.
NDJSON e CSV descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Objetos aninhados são achatados em colunas. Dados muito aninhados perdem a forma.
Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe Comma-Separated Values.