ODS file to JSON

je voudrais convertir mon speadsheet de données en un tableau JSON de tableau.

Ce site faire: http://www.shancarter.com/data_converter/index.html Et j'ai regardé dans le code source.

mais ce que je voudrais c'est une macro / script / extension ou n'importe quelle façon de le programmer pour convertir my .ods en un fichier JSON:

Comme:

NAME    VALUE   COLOR   DATE
Alan    12  blue    Sep. 25, 2009
Shan    13  "green  blue"   Sep. 27, 2009
John    45  orange  Sep. 29, 2009
Minna   27  teal    Sep. 30, 2009

À:

[
    ["Alan",12,"blue","Sep. 25, 2009"],
    ["Shan",13,"greentblue","Sep. 27, 2009"],
    ["John",45,"orange","Sep. 29, 2009"],
    ["Minna",27,"teal","Sep. 30, 2009"]
]
8
demandé sur damio 2012-02-20 01:55:06

2 réponses

la réponse pourrait être de nouveau en retard mais marcoconti83 a fait exactement cela: lire un fichier ods et les retourner sous forme de tableaux bidimensionnels.

https://github.com/marcoconti83/read-ods-with-odfpy/blob/master/ODSReader.py

une Fois que vous avez les données dans des tableaux, il n'est pas difficile de les obtenir dans un fichier json. Voici un exemple de code:

import json
from odftoarray import ODSReader  # renamed the file to odftoarray.py

r = ODSReader("your_file.ods")
arrays = r.getSheet("your_data_sheet_name")
json.dumps(arrays)
5
répondu chfw 2016-02-06 11:09:02

C'est peut-être un peu tard mais pour ceux qui viennent chercher et qui veulent le faire, il serait probablement préférable de sauver le .fichier ods .csv que presque tous les programmes de tableur peuvent faire. Puis utilisez quelque chose comme ceci pour le convertir:

import csv
import sys
import json, os


def convert(csv_filename, fieldnames):
    print ("Opening CSV file: ",csv_filename)
    f=open(csv_filename, 'r')
    csv_reader = csv.DictReader(f,fieldnames)
    json_filename = csv_filename.split(".")[0]+".json"

    print ("Saving JSON to file: ",json_filename)
    jsonf = open(json_filename,'w') 
    data = json.dumps([r for r in csv_reader])
    jsonf.write(data) 
    f.close()
    jsonf.close()


csvfile = ('path/to/the/csv/file.csv')
field_names = [
                "a",
                "list",
                "of",
                "fieldnames"
            ]

convert(csvfile, field_names)

et un conseil, csv est assez humain lisible donc il suffit de passer et s'assurer qu'il a enregistré dans le format que vous voulez, puis exécuter ce script pour le convertir en JSON. Regardez dans un visualiseur JSON comme JSONView et alors vous devriez être bon à allez!

3
répondu clifgray 2014-07-23 16:52:14