LibreOfficeCalc是否支持JSON文件导入/排序



我一直在尝试将几个.json文件导入LibreOffice Calc.

虽然我可以获得原始数据,但它并不像我想象的那样排序(通过在每个单元格中放置不同的信息(。

LibreOffice是否支持导入JSON文件并在单元格中对其进行排序?(换句话说,导入+排序(?

如果似乎没有直接支持这一点,那么转换为CSV是否是将数据输入Calc的下一个逻辑步骤?

我自己也有同样的问题(这就是我发现这个问题的原因(。

因此,对于下一个发现这个问题的人来说——答案是否定的——LibreOfficeCalc不支持直接导入JSON。

下一个合乎逻辑的步骤就是转换成CSV。有免费的在线JSON到CSV转换器,并使用其中一个(http://www.convertcsv.com/json-to-csv.htm),我可以很容易地制作一个正确的CSV,Calc导入它时没有任何问题。

一个可能的警告是,如果你有用JSON表示的复杂对象,它可能无法转换为CSV,但如果它不适合CSV,它可能也不适合电子表格格式。

有一个LibreOffice GetRest插件,它的文档是用蹩脚的英语编写的,它有一个"parseJSON"公式。它不会将JSON转换为CSV(没有大量繁琐的工作(,但它可能会帮助您的用例。

如果您可以在Libreoffice Calc中运行Python脚本,那么当您看到这里的内容时,应该是可能的:http://blog.appliedinformaticsinc.com/how-to-parse-and-convert-json-to-csv-using-python/

不是这个问题的直接答案,而是一个简单的解决方法。假设您的JSON是一个数据列的平面阵列,则可以使用以下python片段将其转换为CSV(需要带有pandas模块的python3——pip install pandas(:

import sys
from pathlib import Path
import pandas as pd
input_path = Path(sys.argv[1])
output_path = input_path.with_suffix('.csv')
df = pd.read_json(input_path)
df.to_csv(output_path.open(mode='w'), encoding='utf-8', index=False, header=True)

这将JSON文件的路径作为第一个参数,并在同一文件夹中创建CSV。有关更多输出选项,请参见DataFrame.to_csv()

最新更新