CsvCruncher toma CSV como una tabla SQL y le permite hacer una SELECCIÓN, exportando el resultado como CSV o JSON. github.com/OndraZizka/csv-cruncher
Ondra Žižka
Esto se puede hacer fácilmente usando el marco de datos de pandas. Importe su csv al marco de datos de pandas y conviértalo a json.
R4444
1
Te sugiero que mires Data Transformer (descargo de responsabilidad: soy su desarrollador). Convierte entre CSV, JSON, XML y YML localmente. Ofrece una serie de configuraciones de conversión (con buenos valores predeterminados) para que pueda adaptar el resultado a sus propósitos. Puede obtenerlo en Mac App Store o Microsoft Store .
Geo Systems
Respuestas:
77
Esto funcionó perfectamente para mí y NO requiere la carga de un archivo:
parece interesante, mal volver a este cuando tengo necesidad de nuevo
mkoryak
66
Está bien, pero tenga en cuenta que no escapa a las comillas correctamente. Cuando su CSV contiene comillas dobles, la salida no se le escapa. Puede que tenga que hacerlo a mano. Herramienta muy útil, no obstante.
barrycarton
Gran herramienta! bien hecho. @barrycarton parece que esto se ha solucionado si extrae el último código de Github. El que está en el enlace de arriba parece anticuado.
Bach
Hola @Shan Carter, quiero que el usuario solo cargue el archivo de Excel, no copie el contenido de Excel, ¿es posible con el código actual o debería bifurcarlo (si es posible hacerlo)? Por favor comparte tus pensamientos.
Crédito adicional: guarde json en un archivo ... $ topicsjson | Add-Content -Path "mydata.json"
brady321
28
Si no puede encontrar una solución existente, es bastante fácil crear una solución básica en Java. Acabo de escribir uno para un cliente y me tomó solo un par de horas, incluidas las herramientas de investigación.
Después de eso, solo es cuestión de iterar a través de las filas en los datos de Excel y construir una estructura JSON. Aquí hay un pseudocódigo para el 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á en GitHub . Esta es la herramienta más flexible. Quería una forma de crear matrices anidadas u objetos usando CSV ( ejemplo ).
Michael McGinnis
5
Ninguna de las soluciones existentes funcionó, así que rápidamente pirateé un script que haría el trabajo. También convierte cadenas vacías en nulos y separa la fila de encabezado para JSON. Es posible que deba ajustarse según el dialecto CSV y el juego de caracteres que tenga.
#!/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))
No, excepto que se están utilizando las mismas bibliotecas (csv, json). Escribí mi código desde cero. Los bucles son necesarios para el procesamiento que quería hacer (conversión de juego de caracteres y reemplazo de cadenas vacías con nulos).
Tronic
Me pregunto sobre el conflicto entre muchos de los comentarios que dicen "esto funcionó para mí" y este afirmando que "ninguna de las soluciones existentes funcionó".
B. Clay Shannon
4
En lugar de convertidores codificados, qué tal el soporte CSV para Jackson (procesador JSON): https://github.com/FasterXML/jackson-dataformat-csv . Así que el núcleo Jackson puede leer JSON como POJO, mapas JsonNode, casi cualquier cosa. Y el soporte CSV puede hacer lo mismo con CSV. Combine los dos y es un convertidor muy potente pero simple entre múltiples formatos (ya hay backends para XML, YAML y más).
Puede encontrar un artículo que muestra cómo hacer esto aquí .
Esta es una publicación de blog publicada en noviembre de 2008 que incluye el código C # para proporcionar una solución.
De la introducción en la publicación del blog:
Como Json es más fácil de leer y escribir, entonces Xml. Se deduce que CSV (valores separados por comas) es más fácil de leer y escribir que Json. CSV también tiene herramientas como Excel y otras que facilitan el trabajo y la creación. Entonces, si alguna vez desea crear un archivo de configuración o datos para su próxima aplicación, aquí hay un código para convertir CSV a JSON a objetos POCO
Respuestas:
Esto funcionó perfectamente para mí y NO requiere la carga de un archivo:
https://github.com/cparker15/csv-to-json?files=1
fuente
Puedes probar esta herramienta que hice:
Mr. Data Converter
Se convierte a JSON, XML y otros.
También es del lado del cliente, por lo que sus datos nunca salen de su computadora.
fuente
Desde Powershell 3.0 (incluido con Windows 8, disponible para Windows 7 y Windows Server 2008 pero no Windows Vista) puede usar el comando incorporado convertto-json:
Página de ayuda en línea en Technet
fuente
Si no puede encontrar una solución existente, es bastante fácil crear una solución básica en Java. Acabo de escribir uno para un cliente y me tomó solo un par de horas, incluidas las herramientas de investigación.
Apache POI leerá el binario de Excel. http://poi.apache.org/
JSONObject construirá el JSON
Después de eso, solo es cuestión de iterar a través de las filas en los datos de Excel y construir una estructura JSON. Aquí hay un pseudocódigo para el uso básico.
fuente
Esto funciona para mí y se ejecuta en el lado del cliente: http://www.convertcsv.com/csv-to-json.htm
fuente
Acabo de encontrar esto:
http://tamlyn.org/tools/csv2json/
(Nota: debe tener su archivo csv disponible a través de una dirección web)
fuente
Pruebe la pequeña herramienta gratuita:
http://keyangxiang.com/csvtojson/
Utiliza el módulo node.js csvtojson
fuente
Ninguna de las soluciones existentes funcionó, así que rápidamente pirateé un script que haría el trabajo. También convierte cadenas vacías en nulos y separa la fila de encabezado para JSON. Es posible que deba ajustarse según el dialecto CSV y el juego de caracteres que tenga.
fuente
En lugar de convertidores codificados, qué tal el soporte CSV para Jackson (procesador JSON): https://github.com/FasterXML/jackson-dataformat-csv . Así que el núcleo Jackson puede leer JSON como POJO, mapas
JsonNode
, casi cualquier cosa. Y el soporte CSV puede hacer lo mismo con CSV. Combine los dos y es un convertidor muy potente pero simple entre múltiples formatos (ya hay backends para XML, YAML y más).Puede encontrar un artículo que muestra cómo hacer esto aquí .
fuente
Vea si esto ayuda: Volver a CSV - Convertir texto CSV a Objetos; vía JSON
Esta es una publicación de blog publicada en noviembre de 2008 que incluye el código C # para proporcionar una solución.
De la introducción en la publicación del blog:
fuente