CsvCruncher принимает CSV как таблицу SQL и позволяет вам выполнить SELECT, экспортируя результат в CSV или JSON. github.com/OndraZizka/csv-cruncher
Ondra ižka
Это легко сделать с помощью фрейма данных pandas. Импортируйте ваш csv в фрейм данных pandas и скройте его в json.
R4444
1
Предлагаю вам посмотреть Data Transformer (отказ от ответственности - я его разработчик). Он конвертирует между CSV, JSON, XML и YML локально. Он предлагает ряд настроек преобразования (с хорошими значениями по умолчанию), чтобы вы могли адаптировать результат для своих целей. Вы можете получить его в Mac App Store или Microsoft Store .
Geo Systems
Ответы:
79
Это отлично сработало для меня и НЕ требует загрузки файла:
выглядит интересно, я вернусь к этому, когда мне снова понадобится
mkoryak
6
Это нормально, но имейте в виду, что кавычки не экранируются правильно. Если ваш CSV-файл содержит двойные кавычки, вывод не выводится. Возможно, вам придется делать это вручную. Тем не менее, очень удобный инструмент.
barrycarton
Отличный инструмент! красиво сделано. @barrycarton кажется, что это было исправлено, если вы загрузите последний код из Github. Тот, что по ссылке выше, кажется устаревшим.
Бах
Привет, @Shan Carter, я хочу, чтобы пользователь просто загрузил файл excel, а не копировал содержимое excel, возможно ли это с текущим кодом, или я должен его форкнуть (если это возможно). Пожалуйста, поделитесь своими мыслями.
Начиная с Powershell 3.0 (поставляется с Windows 8, доступен для Windows 7 и Windows Server 2008, но не для Windows Vista), вы можете использовать встроенный командлет convertto-json:
Дополнительный кредит: сохранить json в файл ... $ themesjson | Add-Content -Path "mydata.json"
brady321
28
Если вы не можете найти существующее решение, довольно легко создать базовое на Java. Я только что написал один для клиента, и это заняло всего пару часов, включая инструменты исследования.
Это на GitHub . Это самый гибкий инструмент. Мне нужен был способ создания вложенных массивов или объектов с использованием CSV ( пример ).
Майкл МакГиннис
5
Ни одно из существующих решений не помогло, поэтому я быстро собрал сценарий, который справился бы с этой задачей. Также преобразует пустые строки в нули и отделяет строку заголовка для JSON. Может потребоваться настройка в зависимости от вашего диалекта CSV и кодировки.
#!/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))
Нет, за исключением того, что используются те же библиотеки (csv, json). Я написал свой код с нуля. Циклы необходимы для обработки, которую я хотел выполнить (преобразование кодировки и замена пустых строк на null).
Tronic
1
Меня интересует конфликт между многими комментариями, в которых говорится, что «это сработало для меня», и этим, утверждающим, что «ни одно из существующих решений не сработало».
B. Clay Shannon
4
Вместо жестко запрограммированных конвертеров, как насчет поддержки CSV для Jackson (процессор JSON): https://github.com/FasterXML/jackson-dataformat-csv . Таким образом, ядро Джексона может читать JSON как POJO, Карты,JsonNode , почти что угодно. И поддержка CSV может делать то же самое с CSV. Объедините их, и это будет очень мощный, но простой преобразователь между несколькими форматами (уже добавлены бэкенды для XML, YAML и многое другое).
Статью, в которой показано, как это сделать, можно найти здесь .
Это сообщение в блоге, опубликованное в ноябре 2008 г., которое включает код C # для предоставления решения.
Из вступления к сообщению в блоге:
Поскольку Json легче читать и писать, то Xml. Отсюда следует, что CSV (значения, разделенные запятыми) легче читать и писать, чем Json. В CSV также есть такие инструменты, как Excel и другие, которые упрощают работу и создание. Итак, если вы когда-нибудь захотите создать файл конфигурации или данных для своего следующего приложения, вот код для преобразования CSV в JSON в объекты POCO.
Ответы:
Это отлично сработало для меня и НЕ требует загрузки файла:
https://github.com/cparker15/csv-to-json?files=1
источник
Вы можете попробовать этот инструмент, который я сделал:
Мистер Конвертер данных
Он конвертируется в JSON, XML и другие.
Это тоже все на стороне клиента, поэтому ваши данные никогда не покидают ваш компьютер.
источник
Начиная с Powershell 3.0 (поставляется с Windows 8, доступен для Windows 7 и Windows Server 2008, но не для Windows Vista), вы можете использовать встроенный командлет convertto-json:
PS E:> $topicsjson = import-csv .\itinerary-all.csv | ConvertTo-Json PS E:\> $topicsjson.Length 11909 PS E:\> $topicsjson.getType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array
Страница онлайн-справки на Technet
источник
Если вы не можете найти существующее решение, довольно легко создать базовое на Java. Я только что написал один для клиента, и это заняло всего пару часов, включая инструменты исследования.
Apache POI будет читать двоичный файл Excel. http://poi.apache.org/
JSONObject построит JSON
После этого остается просто перебрать строки в данных Excel и построить структуру JSON. Вот псевдокод для основного использования.
FileInputStream inp = new FileInputStream( file ); Workbook workbook = WorkbookFactory.create( inp ); // Get the first Sheet. Sheet sheet = workbook.getSheetAt( 0 ); // Start constructing JSON. JSONObject json = new JSONObject(); // Iterate through the rows. JSONArray rows = new JSONArray(); for ( Iterator<Row> rowsIT = sheet.rowIterator(); rowsIT.hasNext(); ) { Row row = rowsIT.next(); JSONObject jRow = new JSONObject(); // Iterate through the cells. JSONArray cells = new JSONArray(); 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();
источник
Это работает для меня и работает на стороне клиента: http://www.convertcsv.com/csv-to-json.htm
источник
Я только что нашел это:
http://tamlyn.org/tools/csv2json/
(Примечание: ваш CSV-файл должен быть доступен через веб-адрес)
источник
Попробуйте крошечный бесплатный инструмент:
http://keyangxiang.com/csvtojson/
Он использует модуль csvtojson node.js
источник
Ни одно из существующих решений не помогло, поэтому я быстро собрал сценарий, который справился бы с этой задачей. Также преобразует пустые строки в нули и отделяет строку заголовка для JSON. Может потребоваться настройка в зависимости от вашего диалекта CSV и кодировки.
#!/usr/bin/python import 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 = None else: 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))
источник
Вместо жестко запрограммированных конвертеров, как насчет поддержки CSV для Jackson (процессор JSON): https://github.com/FasterXML/jackson-dataformat-csv . Таким образом, ядро Джексона может читать JSON как POJO, Карты,
JsonNode
, почти что угодно. И поддержка CSV может делать то же самое с CSV. Объедините их, и это будет очень мощный, но простой преобразователь между несколькими форматами (уже добавлены бэкенды для XML, YAML и многое другое).Статью, в которой показано, как это сделать, можно найти здесь .
источник
Посмотрите, поможет ли это: Вернуться в CSV - преобразовать текст CSV в объекты; через JSON
Это сообщение в блоге, опубликованное в ноябре 2008 г., которое включает код C # для предоставления решения.
Из вступления к сообщению в блоге:
источник