O CsvCruncher usa o CSV como uma tabela SQL e vamos fazer um SELECT, exportando o resultado como CSV ou JSON. github.com/OndraZizka/csv-cruncher
Ondra Žižka
Isso pode ser feito facilmente usando o dataframe do pandas. Importe seu csv para o dataframe do pandas e oculte-o para o json.
R4444
1
Eu sugiro que você olhe para o Data Transformer (aviso de isenção de responsabilidade - sou desenvolvedor). Ele converte entre CSV, JSON, XML e YML localmente. Ele oferece várias configurações de conversão (com bons padrões) para que você possa personalizar o resultado para seus propósitos. Você pode obtê-lo na Mac App Store ou na Microsoft Store .
Geo Systems
Respostas:
77
Isso funcionou perfeitamente para mim e NÃO requer um upload de arquivo:
parece interessante, doente voltar a este quando eu tenho necessidade de novo
mkoryak
6
Tudo bem, mas lembre-se de que não escapa aspas corretamente. Quando o seu CSV contém aspas duplas, a saída não escapa. Você pode ter que fazer isso manualmente. Ferramenta muito útil, no entanto.
Barrycarton
Ótima ferramenta! bem feito. @barrycarton parece que isso foi corrigido se você extrair o código mais recente do Github. O link acima parece desatualizado.
Bach
Oi @ Shan Carter Eu quero que o usuário apenas carregue o arquivo excel, não copie o conteúdo do excel, é possível com o código atual ou devo bifurcá-lo (se for possível). Por favor, compartilhe seus pensamentos.
Crédito extra: salve o json em um arquivo ... $ topicsjson | Add-Content -Path "mydata.json"
brady321
28
Se você não consegue encontrar uma solução existente, é muito fácil criar uma solução básica em Java. Acabei de escrever um para um cliente e levou apenas algumas horas, incluindo ferramentas de pesquisa.
Depois disso, é apenas uma questão de iterar pelas linhas nos dados do Excel e construir uma estrutura JSON. Aqui estão alguns pseudocódigo para o uso básico.
FileInputStream inp =newFileInputStream( file );Workbook workbook =WorkbookFactory.create( inp );// Get the first Sheet.Sheet sheet = workbook.getSheetAt(0);// Start constructing JSON.JSONObject json =newJSONObject();// Iterate through the rows.JSONArray rows =newJSONArray();for(Iterator<Row> rowsIT = sheet.rowIterator(); rowsIT.hasNext();){Row row = rowsIT.next();JSONObject jRow =newJSONObject();// Iterate through the cells.JSONArray cells =newJSONArray();for(Iterator<Cell> cellsIT = row.cellIterator(); cellsIT.hasNext();){Cell cell = cellsIT.next();
cells.put( cell.getStringCellValue());}
jRow.put("cell", cells );
rows.put( jRow );}// Create the JSON.
json.put("rows", rows );// Get the JSON text.return json.toString();
Está no GitHub . Esta é a ferramenta mais flexível. Eu queria uma maneira de criar matrizes ou objetos aninhados usando CSV ( exemplo ).
Michael McGinnis
5
Nenhuma das soluções existentes funcionou, então rapidamente cortei um script que faria o trabalho. Também converte cadeias vazias em nulos ee separa a linha do cabeçalho para JSON. Pode precisar ser ajustado dependendo do dialeto CSV e do conjunto de caracteres que você possui.
#!/usr/bin/pythonimport csv, json
csvreader = csv.reader(open('data.csv','rb'), delimiter='\t', quotechar='"')
data =[]for row in csvreader:
r =[]for field in row:if field =='': field =Noneelse: field = unicode(field,'ISO-8859-1')
r.append(field)
data.append(r)
jsonStruct ={'header': data[0],'data': data[1:]}
open('data.json','wb').write(json.dumps(jsonStruct))
Não, exceto que as mesmas bibliotecas (csv, json) estão sendo usadas. Eu escrevi meu código do zero. Os loops são necessários para o processamento que eu queria fazer (conversão de conjunto de caracteres e substituição de cadeias vazias por nulas).
Tronic
Estou pensando no conflito entre muitos dos comentários que dizem "isso funcionou para mim" e este afirmando que "nenhuma das soluções existentes funcionou".
B. Clay Shannon
4
Em vez de conversores codificados, que tal o suporte CSV para Jackson (processador JSON): https://github.com/FasterXML/jackson-dataformat-csv . Então, o núcleo Jackson pode ler JSON como POJOs, Maps JsonNode, quase tudo. E o suporte ao CSV pode fazer o mesmo com o CSV. Combine os dois e é um conversor muito poderoso, mas simples, entre vários formatos (já existem backends para XML, YAML e muito mais).
Um artigo que mostra como fazer isso pode ser encontrado aqui .
Esta é uma postagem de blog publicada em novembro de 2008 que inclui código C # para fornecer uma solução.
Desde a introdução na postagem do blog:
Como Json é mais fácil de ler e escrever do que Xml. Daqui resulta que o CSV (valores separados por vírgula) é mais fácil de ler e gravar do que o Json. O CSV também possui ferramentas como o Excel e outras que facilitam o trabalho e a criação. Portanto, se você quiser criar um arquivo de configuração ou de dados para o seu próximo aplicativo, aqui está um código para converter objetos CSV para JSON em POCO
Respostas:
Isso funcionou perfeitamente para mim e NÃO requer um upload de arquivo:
https://github.com/cparker15/csv-to-json?files=1
fonte
Você pode tentar esta ferramenta que eu criei:
Mr. Data Converter
Ele converte em JSON, XML e outros.
Também é do lado do cliente, para que seus dados nunca saiam do computador.
fonte
Desde o Powershell 3.0 (fornecido com o Windows 8, disponível para Windows 7 e Windows Server 2008, mas não o Windows Vista), você pode usar o comando convertto-json interno:
Página de Ajuda Online no Technet
fonte
Se você não consegue encontrar uma solução existente, é muito fácil criar uma solução básica em Java. Acabei de escrever um para um cliente e levou apenas algumas horas, incluindo ferramentas de pesquisa.
O Apache POI lerá o binário do Excel. http://poi.apache.org/
JSONObject criará o JSON
Depois disso, é apenas uma questão de iterar pelas linhas nos dados do Excel e construir uma estrutura JSON. Aqui estão alguns pseudocódigo para o uso básico.
fonte
Isso funciona para mim e é executado no lado do cliente: http://www.convertcsv.com/csv-to-json.htm
fonte
Acabei de encontrar isso:
http://tamlyn.org/tools/csv2json/
(Nota: você precisa disponibilizar seu arquivo csv através de um endereço da web)
fonte
Experimente a pequena ferramenta gratuita:
http://keyangxiang.com/csvtojson/
Utiliza o módulo node.js csvtojson
fonte
Nenhuma das soluções existentes funcionou, então rapidamente cortei um script que faria o trabalho. Também converte cadeias vazias em nulos ee separa a linha do cabeçalho para JSON. Pode precisar ser ajustado dependendo do dialeto CSV e do conjunto de caracteres que você possui.
fonte
Em vez de conversores codificados, que tal o suporte CSV para Jackson (processador JSON): https://github.com/FasterXML/jackson-dataformat-csv . Então, o núcleo Jackson pode ler JSON como POJOs, Maps
JsonNode
, quase tudo. E o suporte ao CSV pode fazer o mesmo com o CSV. Combine os dois e é um conversor muito poderoso, mas simples, entre vários formatos (já existem backends para XML, YAML e muito mais).Um artigo que mostra como fazer isso pode ser encontrado aqui .
fonte
Veja se isso ajuda: Voltar para CSV - Converta texto CSV em objetos; via JSON
Esta é uma postagem de blog publicada em novembro de 2008 que inclui código C # para fornecer uma solução.
Desde a introdução na postagem do blog:
fonte