CSV / XLS'yi JSON'a dönüştürme? [kapalı]


142

Herkes tercihen XLS JSON dönüştürmek sağlayacak uygulama olup olmadığını biliyor mu?

Ayrıca CSV'den bir dönüştürücü için razı olacağım, çünkü etrafta hiçbir şey yoksa muhtemelen kendimi yazmak zorunda kalacağım.


XLS nasıl yapılandırılmıştır? İlk satırın sütun başlıkları olduğunu düşünüyor musunuz?
SheetJS


CsvCruncher, CSV'yi SQL tablosu olarak alır ve bir SELECT yapmanıza izin verir ve sonucu CSV veya JSON olarak dışa aktarır. github.com/OndraZizka/csv-cruncher
Ondra Žižka

Bu pandalar veri çerçevesi kullanılarak kolayca yapılabilir. CSV'nizi panda veri çerçevesine aktarın ve json'a dönüştürün.
R4444

1
Data Transformer'a bakmanızı öneririm (feragat - Ben onun geliştiricisiyim). CSV, JSON, XML ve YML'yi yerel olarak dönüştürür. Çok sayıda dönüştürme ayarı (iyi varsayılanlarla) sunar, böylece sonucu amaçlarınıza göre özelleştirebilirsiniz. Mac App Store veya Microsoft Store'dan edinebilirsiniz .
Geo Systems

Yanıtlar:


77

Bu benim için mükemmel çalıştı ve bir dosya yüklemesi GEREKMEZ:

https://github.com/cparker15/csv-to-json?files=1


Kodunuza yapıştırabileceğiniz metne dönüştürmek istiyorsanız, "Actionscript" seçeneğini kullanın.
Steve O'Connor

Ne yazık ki bu web sitesi çöktü
Mazen Kasser

3
Kaynak GIT'te
zmonteca

@zmonteca Cevap bağlantınızla güncellendi
robertc

Teşekkür ederim, işe yarıyor. sadece bu projelerin bağımlılıklarını güncellemeniz gerekiyor, aksi takdirde çalıştırılamıyor
hd84335

196

Yaptığım bu aracı deneyebilirsiniz:

Bay Veri Dönüştürücü

JSON, XML ve diğerlerine dönüştürür.

Hepsi istemci tarafı da, bu nedenle verileriniz asla bilgisayarınızdan ayrılmaz.


ilginç görünüyor, tekrar ihtiyacım olduğunda buna geri geleceğim
mkoryak

6
İyi ama tırnak işaretleri doğru kaçmıyor unutmayın. CSV'niz çift tırnak içerdiğinde çıktıdan kaçmaz. Bunu elle yapmanız gerekebilir. Yine de çok kullanışlı bir araç.
barrycarton

Harika bir araç! güzel yapılmış. @barrycarton Github'dan en son kodu alırsanız bu düzeltilmiş görünüyor. Yukarıdaki bağlantıdaki modası geçmiş gibi görünüyor.
Bach

Merhaba @Shan Carter Kullanıcı sadece excel dosyasını yüklemek istiyorum, excel içeriğini kopyalamak için değil, Geçerli kod ile mümkün mü yoksa çatal gerekir (Eğer mümkünse). Lütfen düşüncelerinizi paylaşın.
Rahul Gautam

1
Harika bir araç, @Shan Carter. Burada çatalımdaki birkaç şeyi düzeltme özgürlüğünü aldım: thdoan.github.io/mr-data-converter
thdoan

38

Powershell 3.0 (Windows 8 ile birlikte gelir, Windows 7 ve Windows Server 2008 için kullanılabilir, ancak Windows Vista için kullanılamaz) olduğundan, yerleşik convertto-json komutunu kullanabilirsiniz:

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'teki Çevrimiçi Yardım Sayfası


7
Ekstra kredi: json'u bir dosyaya kaydedin ... $ topicsjson | Add-Content -Path "mydata.json"
brady321

28

Mevcut bir çözümü bulamazsanız, Java'da temel bir çözüm oluşturmak oldukça kolaydır. Bir müşteri için bir tane yazdım ve araştırma araçları da dahil olmak sadece birkaç saat sürdü.

Apache POI, Excel ikili dosyasını okuyacaktır. http://poi.apache.org/

JSONObject JSON'u kuracak

Bundan sonra, Excel verilerindeki satırlar arasında yineleme ve bir JSON yapısı oluşturma meselesi. Temel kullanım için bazı sahte kodlar.

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();

Excel'de E: /exceloutput.xlsx dizininde depolanmışsa. İlk iki satırdaki dosya ve giriş değerleri ne olur?
Kate




5

Mevcut çözümlerin hiçbiri işe yaramadı, bu yüzden hızlı bir şekilde işi yapacak bir senaryoyu hackledim. Ayrıca boş dizeleri null değerine dönüştürür ve JSON için başlık satırını ayırır. Sahip olduğunuz CSV lehçesine ve karakter kümesine bağlı olarak ayarlanması gerekebilir.

#!/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))


Hayır, aynı kütüphanelerin (csv, json) kullanılması dışında. Kodumu sıfırdan yazdım. Döngüler yapmak istediğim işlem için gerekli (charset dönüşümü ve boş dizeleri null ile değiştirme).
Tronic

"Bu benim için işe yaradı" diyen yorumların birçoğuyla "mevcut çözümlerin hiçbirinin işe yaramadığını" iddia eden çelişkiyi merak ediyorum.
B.Chilly Shannon

4

Sabit kodlu dönüştürücüler yerine Jackson için CSV desteği (JSON işlemci): https://github.com/FasterXML/jackson-dataformat-csv . Böylece çekirdek Jackson JSON'u POJO'lar, Haritalar JsonNode, neredeyse her şey olarak okuyabilir . CSV desteği de CSV ile aynı şeyi yapabilir. İkisini birleştirin ve çoklu formatlar arasında çok güçlü ama basit bir dönüştürücü (XML, zaten YAML ve daha fazlası için arka uçlar var).

Bunun nasıl yapılacağını gösteren bir makale burada bulunabilir .


3

Bunun yardımcı olup olmadığına bakın: CSV'ye dön - CSV metnini Nesnelere dönüştürün; JSON ile

Bu, Kasım 2008'de yayınlanan ve bir çözüm sunmak için C # kodunu içeren bir blog yazısıdır.

Blog gönderisindeki girişten:

Json okumak ve yazmak daha kolay sonra Xml. CSV'nin (virgülle ayrılmış değerler) Json'dan sonra okunması ve yazılması daha kolay olur. CSV ayrıca, Excel ve diğerleri gibi çalışmayı ve oluşturmayı kolaylaştıran araçlara da sahiptir. Dolayısıyla, bir sonraki uygulamanız için bir yapılandırma veya veri dosyası oluşturmak istiyorsanız, CSV'yi JSON'a POCO nesnelerine dönüştürmek için bazı kodlar


1
Teşekkürler. hasta bu java için bağlantı noktası var, ama daha sonra daha sonra tekerleği yeniden icat etmeye çalışıyor
mkoryak

Çalıştığı için memnunum, c # -> java zaten oldukça iyi bir maç.
qxotk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.