python程序, 实现matlab的.mat格式转化为dict / json .

第一个参数mat_path代表需要转化的mat路径;

第二个参数, 如果需要把字典序列化成json, 添加这一参数, 代表json存放位置;

返回值: 转化好的字典

import os

import json

import scipy.io as spio

import pandas as pd

def loadmat(filename):

'''

this function should be called instead of direct spio.loadmat

as it cures the problem of not properly recovering python dictionaries

from mat files. It calls the function check keys to cure all entries

which are still mat-objects

'''

data = spio.loadmat(filename, struct_as_record=False, squeeze_me=True)

return _check_keys(data)

def _check_keys(dict):

'''

checks if entries in dictionary are mat-objects. If yes

todict is called to change them to nested dictionaries

'''

for key in dict:

if isinstance(dict[key], spio.matlab.mio5_params.mat_struct):

dict[key] = _todict(dict[key])

return dict

def _todict(matobj):

'''

A recursive function which constructs from matobjects nested dictionaries

'''

dict = {}

for strg in matobj._fieldnames:

elem = matobj.__dict__[strg]

if isinstance(elem, spio.matlab.mio5_params.mat_struct):

dict[strg] = _todict(elem)

else:

dict[strg] = elem

return dict

def mat2json(mat_path=None, filepath = None):

"""

Converts .mat file to .json and writes new file

Parameters

----------

mat_path: Str

path/filename .mat存放路径

filepath: Str

如果需要保存成json, 添加这一路径. 否则不保存

Returns

返回转化的字典

-------

None

Examples

--------

>>> mat2json(blah blah)

"""

matlabFile = loadmat(mat_path)

#pop all those dumb fields that don't let you jsonize file

matlabFile.pop('__header__')

matlabFile.pop('__version__')

matlabFile.pop('__globals__')

#jsonize the file - orientation is 'index'

matlabFile = pd.Series(matlabFile).to_json()

if filepath:

json_path = os.path.splitext(os.path.split(mat_path)[1])[0] + '.json'

with open(json_path, 'w') as f:

f.write(matlabFile)

return matlabFile

python读取mat数据是字典形式如何转化为矩阵_mat2json, python读取mat成字典, 保存json...相关推荐

  1. python输入一组数据、进行简单的统计_《利用Python进行数据分析》学习笔记——第二章(3)...

    1880-2010年间全美婴儿姓名 用pandas.read_csv加载.txt文件 图2.1 用read_csv加载.txt文件 DataFrame.names1880中只有births这一列是in ...

  2. 用python玩转数据慕课答案第四周_大学慕课用Python玩转数据章节测试答案

    大学慕课用Python玩转数据章节测试答案 更多相关问题 渗透泵型片剂控释的基本原理是A.减小溶出B.减慢扩散C.片剂膜外渗透压大于片剂膜内,将片内药物从 语义学批评是什么? As usual, __ ...

  3. python定义map数据_「每日一练」巧用Python处理列表中的数据

    列表是Python中最常用到的元素,那么你知道map方法吗?了解的话,可以很轻松的对list中的每个元素进行处理哦!一起来练习一下吧! 往下看,就是这么简单! 案例 列表[1,2,3,4,5],请使用 ...

  4. 博图如何读取mysql数据_博途使用小结:从SQL中读取数据并给变量赋值

    1.建立内部变量TON_Report,VF01_Runtime,JC01_Runtime,VF05_Runtime,数据类型为Real,长度为2 2.建立查询按钮,点击查询按钮时读取SQL中的数据并赋 ...

  5. .net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表

    VBA 是一种很久远的编程语言,但并不过时.在满足以下两个条件时,借助 VBA 可以极大的提升生产率,降低出错率: 你的电脑上不允许自主安装软件: 你需要执行的工作中大部分的步骤都是固定且重复的. 项 ...

  6. python对excel数据统计_数据分析EPHS(4)-使用Excel和Python计算数列统计值

    前面环境都搞的差不多了,这次咱们进入实战篇,来计算一列的统计值.统计值主要有最大值.最小值.均值.标准差.中位数.四分位数.话不多说,直接进入正题. 本文介绍使用Excel和Python来计算上述统计 ...

  7. python 将三维数据转为二维_python 二维矩阵转三维矩阵示例

    如下所示: >>> import numpy as np >>> a = np.arange(12).reshape(3,4) >>> a arr ...

  8. python获取excel数据进行判断输出结果到excel,如何使用python xlrd/xlwt从一个excel工作簿提取数据并输出到另一个excel工作簿?...

    我正在为xlutils.xlrd和xlwt创建一个名为excel functions的类,最终我可能会创建一个库.如果你有兴趣帮我做一个删除工作表的功能. 您可能希望转向openpyxl和/或pyex ...

  9. python 将三维数据转为二维_将三维矩阵转换/重塑为二维矩阵

    使用^{},然后使用^{},如下-X.transpose(1,2,0).reshape(-1,X.shape[0]) 解释- 1)您想要得到由X[:, 0, 0].X[:, 0, 1]等组成的行,也就 ...

最新文章

  1. c++ Boost库之boost::bind学习
  2. 后记:Cookie安全大辩论总结
  3. React中自定义方法
  4. 【动态规划笔记】区间dp:合并果子
  5. C语言之最简单回调demo(五)
  6. 谈谈可视化编程 (转)
  7. 【一次五款】满速下载百度云神器
  8. html如何给标题设置边框和底纹,word如何设置文字边框和底纹
  9. php中的oop思想,php oop的特性是什么?php oop思想的三大特点介绍
  10. python 必应搜索教程
  11. python中shelf对象_11.4. shelve — Python 对象持久化 — Python 2.7.18 文档
  12. 【OpenCV学习笔记】之六 手写图像旋转函数---万丈高楼平地起
  13. 惠花生活v7.5.2
  14. SSM框架实现用户查询、注册、登录——IDEA整合Spring、Spring MVC、Mybatis 框架
  15. Docker、nvidia-container-toolkit安装与常用docker命令及docker镜像和容器的更新维护
  16. 海尔消费金融2019年业绩:营收13.89亿元,净利润2.05亿元
  17. android_10.0.0_r41自定义驱动编译+Framework层调用_2(自定义驱动)
  18. python调用java之Jpype实现java接口
  19. C++ 实现内存泄露检查
  20. SQL 分组排序及命令行运行脚本的例子 PsTools

热门文章

  1. import lombok 报错_Lombok注解@Getter @Setter详解
  2. ARMA模型的性质之MA模型
  3. 整数线性规划实现(matlab分枝界定法)
  4. php强大的函数,PHP中一些功能强大却很少使用的函数
  5. 旋流式沉砂池计算_旋流沉砂池设计方法
  6. C语言-字符串处理函数strcmp
  7. vc6.0添加注释快捷键
  8. 使用Xftp5连接云服务器
  9. mysql zrm_mysql数据库备份—ZRM
  10. Contest Hunter 0103最短Hamilton路径 【状压dp】 By cellur925