【文件处理】——字典写入json文件或TXT文件,读取文件中的字典TypeError: Object of type ‘ndarray‘ is not JSON serializable错误解决方法

目录

一、将字典写入json文件

二、json文件中读取字典

三、将字典写入TXT文件中

四、从TXT中读取字典

五、解决字典含数组存入json文件失败的方法

1、存入前将数组变成列表

2、扩展类方法


 


一、将字典写入json文件

import jsontest_dict = {'version': "1.0",'explain': {'used': True,'details': "this is for josn test",}
}#将字典转换为字符串形式
json_str = json.dumps(test_dict, indent=4)#注意这个indent参数,可以保存字典的缩进格式,否则为一行with open('test_data.json', 'w') as json_file:json_file.write(json_str)

二、json文件中读取字典

with open('test_data.json', 'r') as json_file:dic = json.load(json_file)

三、将字典写入TXT文件中

import jsondic = {  'andy':{  'age': 23,  'city': 'beijing',  'skill': 'python'  },  'william': {  'age': 25,  'city': 'shanghai',  'skill': 'js'  }  
}  js = json.dumps(dic)   
file = open('test.txt', 'w')  
file.write(js)  
file.close()  

四、从TXT中读取字典

import jsonfile = open('test.txt', 'r') 
js = file.read()
dic = json.loads(js)   
print(dic) 
file.close() 

五、解决字典含数组存入json文件失败的方法

因为json无法序列化

1、存入前将数组变成列表

array.tolist()

2、扩展类方法

class NpEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, np.integer):return int(obj)elif isinstance(obj, np.floating):return float(obj)elif isinstance(obj, np.ndarray):return obj.tolist()else:return super(NpEncoder, self).default(obj)

将上述代码添加到你的代码中,然后改成json.dumps(data, cls=NpEncoder) 

TypeError: Object of type 'ndarray' is not JSON serializable

from collections import defaultdict
import json
import numpy as npclass NpEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, np.integer):return int(obj)elif isinstance(obj, np.floating):return float(obj)elif isinstance(obj, np.ndarray):return obj.tolist()else:return super(NpEncoder, self).default(obj)video = defaultdict(list)
video["label"].append("haha")
video["data"].append(234)
video["score"].append(0.3)
video["label"].append("xixi")
video["data"].append(123)
video["score"].append(0.7)test_dict = {'version': "1.0",'results': (np.zeros((2,3))),'explain': {'used': True,'details': "this is for josn test",}
}
print(test_dict)
json_str = json.dumps(test_dict, indent=4,cls=NpEncoder)#注意这个indent参数
with open('test_data.json', 'w') as json_file:json_file.write(json_str)with open('test_data.json', 'r') as json_file:dic = json.load(json_file)
print(type(dic))

参考:

https://blog.csdn.net/li532331251/article/details/78203438

https://blog.csdn.net/BobChill/article/details/83864285

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js一些实用例子

1.获取焦点选中文本内容 $("#id").focus(function(){ this.select(); }); 2.表单提交方式 A.自动提交 setTimeout(function(){表单对象.submit();},2000); B.onclick事件提交(链接提交) <input type"submit" value"提交" οnclick"retur…

360安全卫士加速球误关闭某个应用软件

近期因为工作原因须要使用金山快盘。但因为之前电脑上安装了360安全卫士&#xff0c;在使用加速球功能的时候&#xff0c;会出现&#xff0c;误关闭金山快盘的操作&#xff0c;怎么避免呢&#xff1f; 1、打开360主界面。找到安全防护中心&#xff0c;例如以下图&#xff1a; 2…

C++STL总结笔记(一)—— 容器和容器适配器

文章目录前言一、概念1.1 顺序容器1.2 容器适配器1.3 关联容器二、程序示例1. vector和Set自定义数据类型的访问2.vector容器嵌套3.list容器排序4.pair对组的使用总结前言 STL是C中的基于数据结构和算法的标准模板库&#xff0c;可以大量节约系统开发时间&#xff0c;增加程序…

【图像处理】——比特平面原理和实现方法(全网较全面,含所有比特位图的分层方法)

目录 一、比特平面 1st比特平面:括号里面的为比特值,前面的是原图像中对应要变为0的像素值

20145238-荆玉茗 《信息安全系统设计基础》第7周学习总结

20145238 《信息安全系统设计基础》第7周学习总结 教材学习内容总结 存储器系统 : 存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。 1、RAM随机访问存储器 分类&#xff1a;SRAM&#xff08;静态&#xff09;、DRAM&#xff08;动态&#xff09;特点&…

关于两个jar包中存在包名和类名都完全相同的jar包冲突问题

2019独角兽企业重金招聘Python工程师标准>>> 最近弄webservice&#xff0c;我使用的jdk自带的wsimport工具来生成客户端代码&#xff0c;发现生成的代码具有编译错误&#xff0c;错误描述如下&#xff1a; The method getPort(QName, Class<T>) in the type S…

限制文本框只能输入数字和小数点

<input type"text" class"NumText" placeholder"只能输入数字&#xff08;可含有小数点&#xff09;"/><style> .NumText{width:200px;} .NumText::-webkit-input-placeholder{color:#F1923C;} .NumText:-moz-placeholder{…

C++STL总结笔记(二)——仿函数(函数对象)

文章目录一、概念总结一、概念 仿函数又称函数对象&#xff0c;即重载了函数调用运算符&#xff08;&#xff09;的类的对象。 优势&#xff1a; 1.仿函数对象的内部可以有自己的状态&#xff0c;可以实现一些其他的功能。 2.函数对象可以作为参数进行传递。 当仿函数类内重载…

【图像处理】——灰度变换心得(cv2.normalize规范化值0-255,cv2.convertScaleAbs(new_img)转为8位图)

目录 一、灰度变换函数 对数变换 加码变换 常见雷点 常见灰度变换函数

SQL Server2008 表旋转(pivot)技术

参考资料&#xff1a; http://www.cnblogs.com/xiashengwang/p/3503554.html转载于:https://www.cnblogs.com/lihuali/p/6014776.html

const和define 区别

1&#xff1a; 编译器处理不同 define宏是在预处理阶段展开&#xff0c;const常量是编译运行阶段使用。 2&#xff1a;类型和安全检查不同 const常量有数据类型&#xff0c;而宏常量没有数据类型&#xff0c;仅仅是展开。编译器可以对前者进行类型安全检查&#xff0c;而对后者…

学习笔记(三)

一.调试模式 define(APP_DEBUG, true); 调试模式的优势在于&#xff1a; 开启日志记录&#xff0c;任何错误信息和调试信息都会详细记录&#xff0c;便于调试&#xff1b;  关闭模板缓存&#xff0c;模板修改可以即时生效&#xff1b;  记录SQL日志&#xff0c;方便分析SQL…

【项目实战】——Python打包正装换底色代码为exe文件(可在其他无Python环境下运行)

目录 1.安装pyinstaller 2.生成.exe文件 方法1&#xff1a; 方法2&#xff1a; 方法3&#xff1a; &#xff08;1&#xff09;使用命令行窗口进入项目的根目录 &#xff08;2&#xff09;在改目录下执行pyi-makespec main.py&#xff08;main.py是你的主入口文件&#x…

C++STL总结笔记(三)—— 常见算法

文章目录一、基本概念二、程序示例1.遍历2. 查找3. 排序、拷贝、替换4. numeric相关算法总结一、基本概念 算法是STL中很重要的一部分&#xff0c;其功能包括比较&#xff0c;查找&#xff0c;排序&#xff0c;交换&#xff0c;遍历&#xff0c;复制等等。 最大的算法头文件是…

Java zip解压,并遍历zip中的配置文件 .cfg或.properties

1.解析cfg或properties配置文件 讲配置文件&#xff0c;读取&#xff0c;并封装成为map类型数据 /*** 解析cfg文件** param cfgFile* return*/public static Map<String, Object> readCfg(FileInputStream cfgFile) {Properties prop new Properties();Map<String, O…

db2 常用配置

db2set配置&#xff1a; db2set DB2_ENABLE_LDAPNO db2set DB2_ALTERNATE_GROUP_LOOKUPGETGROUPLIST db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIESON db2set DB2_SKIPINSERTEDON db2set DB2_LOAD_COPY_NO_OVERRIDENONRECOVERABLE db2set DB2_EVALUNCOMMITTEDON db2set DB2_SKIP…

安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(三)码农网

12. 安装 Apache Tomcat Tomcat 是由 Apache 设计的用来运行 Java HTTP web 服务器的 servlet 容器。按照下面的方法安装 tomcat&#xff0c;但需要指出的是安装 tomcat 之前必须先安装 Java。 # yum install tomcat 安装 Apache Tomcat 安装完 tomcat 之后&#xff0c;启动 to…

【图像处理】——图像特效处理(马赛克、图像融合、毛玻璃等)

参考:https://blog.csdn.net/qq_43328040/article/details/109081414 import cv2 import numpy as np import random#马赛克:将一定大小窗口的RGB设置成一个颜色 def horseBox(img):row,col,chal = img.shapeboxRow = int(0.3*row)boxcol = int(0.3*col)for m in range(50,b…

JDK5.0新特性之:泛型

文/陈刚 2005-11-09 一、前言 泛型这个词在现在的JAVA挺时髦&#xff0c;光从字面上你是无法知道它代表些什么东东的&#xff0c;所以我们还是不要从字面去理解&#xff0c;而是从一些实例去了解它吧。 二、泛型之前的日子 &#xff2a;&#xff24;&#xff2b;&#xff11;.…