Conversão do bsonfile com duas saídas diferentes

1

Eu quero converter algum arquivo bson para algum arquivo json. Eu faço isso usando a função bsondump.

bsondump exemple.bson > example.json

Pela versão antiga 2.4.9 do bsondump (dependia da versão do mongodb), obtive a saída correta na forma de arquivo válido JSON (na verdade, é um dicionário com o valor-chave pares). Ocasionalmente eu fiz upgrade para o meu sistema e agora mongodb 2.6.3. Tem uma concepção para a minha saída ... Se algum valor no dicionário é numérico, toda vez que eu recebo suplemento adicional para o meu número na forma de:

"key": NumberLong(1234567)

Para mim é importante ter a saída na forma simples:

"key": 1234567

porque eu quero importar meu arquivo JSON no código Python. No código Python Eu uso pandas para converter meu JSON para DataFrame. Para isso eu uso

pandas.read_json("example.json")

function, que me pega a mensagem de erro, porque ela pode encontrar a string JSON válida. Eu quero ler o JSON direto nos pandas, conseqüentemente eu preciso do formato JSON válido. Minha pergunta é, como eu posso obter direto o formato JSON válido após a atualização na versão 2.6.3. Atualmente fiz um código para remover "NumberLong" em todas as linhas, mas tenho os arquivos com o grande número de linhas, consequentemente é a questão do tempo. Como posso obter o formato JSON válido com a nova versão do MongoDB?

    
por Guforu 17.09.2014 / 08:55

1 resposta

1

bson não é json binário, é binário extended json. Portanto, a maneira apropriada seria usar um analisador json estendido para isso, que compreendesse e processasse adequadamente as informações extras.

Por outro lado, existe a consciência de que incompatibilidades com json podem produzir problemas e há pelo menos uma proposta para simplesmente acabar com com a informação extra e deixe a linguagem de programação interpretar o json lidar com isso (na esperança que possa).

Não sei quais são os outros benefícios da versão 2.6.3 de bsondump . Você pode simplesmente copiar a versão antiga (próxima) para a nova instalação. Ou, alternativamente, corrija e compile a nova versão se houver outros recursos que justifiquem seu uso.

    
por 17.09.2014 / 09:18