微信小程序开发-云数据库导出JSON、CSV格式处理
但如果是为了导出Excel格式,方便修改数据,可以导出CSV格式,office、WPS的Excel可以直接打开,但是若含有结构化嵌套数据,导入时要转化为JSON才行。如果觉得上面的JSON文件格式化后编辑数据仍然没有Excel方便,可以直接导出CSV格式用Excel打开,或者将JSON文件使用Python转换成Excel文件,这样有一个好处是可以将嵌套的JSON数据提取出来,在Excel中平展开,
问题
从微信云开发控制台导出数据库文件有两种格式:JSON和CSV。
CSV格式在导出时要填写字段名,比较麻烦。
而且在导入数据时,CSV格式仅支持导入字符串(string)和数字格式(number),对于嵌套的数组数据则视为字符串导入,所以结构化数据就不太好用CSV格式了。但如果是为了导出Excel格式,方便修改数据,可以导出CSV格式,office、WPS的Excel可以直接打开,但是若含有结构化嵌套数据,导入时要转化为JSON才行。
JSON格式可以直接导出,但也存在一个问题,微信云数据库导出的JSON文件不是常规的JSON格式,使用逗号分割两条记录,而且全部用中括号括起来。
而是两条记录之间采用“行分隔”的方式,这种方式在目前主流的线上JSON格式化网站和小工具,都无法处理,要在没有格式化的状态下编辑数据,将是噩梦般的操作。
少量数据可以手动添加逗号,数据量大了就难搞了!
怎样才能方便的实现微信小程序云数据库导出、编辑、上传呢?
解决办法
一、导出JSON格式
1.JSON文件格式化
方便地直接导出,使用Notepad++软件打开,该软件有个非常好的插件管理功能。
可以安装JSON Viewer,实现JSON文件的格式化。
正如前面所说,微信小程序云数据库导出的JSON采用“行分隔”的方式,直接格式化会出错!
有个方便的方法添加逗号,不用一行行去添加。Notepad++有一个列块模式,按ALT键,鼠标点选一列,就可以在该列全部填加逗号了。
最后添加上中括号,就可以格式化了,格式化后再编辑数据,就方便多了。
2.JSON文件转换成Excel
如果觉得上面的JSON文件格式化后编辑数据仍然没有Excel方便,可以直接导出CSV格式用Excel打开,或者将JSON文件使用Python转换成Excel文件,这样有一个好处是可以将嵌套的JSON数据提取出来,在Excel中平展开,以便更好的编辑。
这里先踩了一个坑,我使用Jupyter Notebook (Anaconda3),Python的JSON库处理小程序云数据库的Json文件,发现还是因为没有逗号间隔的原因,不能读取成功。
使用Python的pandas库处理小程序云数据库的Json文件,pandas 能够读取和写入行分隔的 json 文件,这些文件在使用 Hadoop 或 Spark 的数据处理管道中很常见,读取成功。这里必须要使用lines参数为True,即使用行分隔的方式。
其中answers字段存放的是数组,并嵌套了对象。
若要将其打开,就使用pandas的json_normalize函数:将字典或字典列表种半结构化数据规范化为一个平面表。
并可以持续的展开到最底下一层,然后合并各个字段。
最后导出为Excel表。
result = pd.concat([data_json,answers_json0,answers_json1,answers_json2,answers_json3], axis=1)
result.to_excel("1111.xlsx", sheet_name="Sheet1")
点击下面链接,可以下载上述完整代码:
JSON to Excel Python源文件及模拟数据
更多推荐
所有评论(0)