Formato de linhas JSON: Por que o jsonl é melhor que um JSON comum para captura na web

Dmitry Narizhnykh Blocked Desbloquear Seguir Seguindo 25 de dezembro

Introdução aos formatos CSV e JSON

O formato CSV (Comma Separated Values, Valores separados por vírgula) é um formato comum de troca de dados amplamente usado para representar conjuntos de registros com uma lista de campos idêntica.

JavaScript Object Notation (JSON) hoje em dia tornou-se de fato do padrão de formato de troca de dados, substituindo XML, que era uma palavra de ordem enorme no início dos anos 2000. Não é apenas autodescritivo, mas também legível para humanos.

Vamos ver exemplos de ambos os formatos.

Aqui está uma lista de famílias representadas como dados CSV:

 id, pai, mãe, filhos 
1, Marcos, Charlotte, 1
2, João, Ana, 3
3, Bob, Monika, 2

O CSV parece muito mais simples do que o análogo de matriz JSON mostrado abaixo:

 [ 
{"id": 1, "pai": "Mark", "mãe": "Charlotte", "filhos": 1},
{"id": 2, "pai": "John", "mãe": "Ann", "filhos": 3},
{"id": 3, "pai": "Bob", "mãe": "Monika", "filhos": 2},
]

Mas o CSV é limitado para armazenar dados bidimensionais e sem tipos. Não há como armazenar estruturas aninhadas ou tipos de valores como nomes de filhos em CSV simples.

 [ 
{"id": 1, "pai": "Mark", "mãe": "Charlotte", "filhos": ["Tom"]},
{"id": 2, "pai": "John", "mãe": "Ann", "filhos": ["Jessika", "Antony", "Jack"]},
{"id": 3, "pai": "Bob", "mãe": "Monika", "filhos": ["Jerry", "Karol"]},
]

Representar estruturas aninhadas em arquivos JSON é fácil, no entanto.

Por que não apenas cercar os dados inteiros com um array JSON regular para que o próprio arquivo seja json válido?

Para inserir ou ler um registro de um array JSON, é necessário analisar todo o arquivo, o que está longe do ideal.

Como cada entrada em JSON Lines é um JSON válido, ela pode ser analisada / desfeita como um documento JSON autônomo. Por exemplo, você pode procurar dentro dele, dividir um arquivo de 10GB em arquivos menores sem analisar a coisa toda.

1. Não há necessidade de ler todo o arquivo na memória antes de analisar. 2. Você pode facilmente adicionar outras linhas ao arquivo simplesmente anexando ao arquivo. Se o arquivo inteiro fosse um array JSON, você teria que analisá-lo, adicionar a nova linha e, em seguida, converter de volta para JSON.