ODS файл в JSON - PullRequest
       56

ODS файл в JSON

8 голосов
/ 20 февраля 2012

Я хотел бы преобразовать мою таблицу данных в массив JSON-массива.

Этот сайт делает это: http://www.shancarter.com/data_converter/index.html И я посмотрел исходный код.

Но то, что я хотел бы, это макрос / скрипт / расширение или любой другой способ запрограммировать его для преобразования моих .ods в файл JSON:

Как:

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,"green\tblue","Sep. 27, 2009"],
    ["John",45,"orange","Sep. 29, 2009"],
    ["Minna",27,"teal","Sep. 30, 2009"]
]

Ответы [ 2 ]

5 голосов
/ 02 сентября 2014

Ответ может быть снова запоздалым, но marcoconti83 сделал именно это: читает файл ods и возвращает их в виде двумерных массивов.

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

Как только у вас есть данные в массивах, это не так сложно, чтобы получить их в файл JSON.Вот пример кода:

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)
3 голосов
/ 23 июля 2014

Это может быть немного поздно, но для тех, кто приходит и хочет это сделать, лучше всего сохранить файл .ods как .csv, что могут сделать почти все программы работы с электронными таблицами.Затем используйте что-то вроде этого, чтобы преобразовать его:

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)

И совет: csv довольно удобен для чтения человеком, поэтому просто пройдите и убедитесь, что он сохранен в нужном формате, а затем запустите этот скрипт, чтобы преобразовать егоJSON.Проверьте это в средстве просмотра JSON, например JSONView , и тогда все будет хорошо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...