问题

从微信云开发控制台导出数据库文件有两种格式: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源文件及模拟数据

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐