Python TypeError: ‘float‘ object is not subscriptable错误解决


Posted in Python onDecember 24, 2022

前言

其实就是个小问题,但是爆出来的时候也很莫名其妙。因为之前都跑得好好的,只是换了不同的文件去跑才出的问题,关键是不同的文件要处理的内容和格式都是完全一样的,一个顺利跑完,一个就报TypeError: ‘float’ object is not subscriptable这个错,就非常无语。接下来就是看看怎么解决问题了:

一开始自然是直接搜索问题,寻找解决办法,实话实说,看了一些博客,但是并没有直接找到解决办法,但是从中获得了一些想法,对问题理解更清楚一点。下面是找到的一种解释:

Python TypeError: ‘float‘ object is not subscriptable错误解决

然后说一下我的具体应用:

我需要从预测生成的 json文件获取预测分数score和预测位置(坐标值)把它们写入txt文档:

ff = open('xx.txt','w')
for anno in annos:
	score = anno['score']
	left,top,right,bottom = anno['box']
	ff.write("%s %s %s %s %s\n" %(score[:6], str(int(left)), str(int(top)),str(int(right)),str(int(bottom))))
ff.close()

json文件内容格式:

{
	"annos":[
		{
			"score":0.999976544,
			"box":[
				145.436234753274657
				456.312645236453657
				254.327564356457435
				553.957943578765678
				]
		},
		{
			"score":0.9996542376,
			"box":[
				344.436234753274657
				987.312645236453657
				423.327564356457435
				234.957943578765678
				]
		},
		...
	]
}

具体问题是在执行写入的时候出现的:

ff.write("%s %s %s %s %s\n" %(score[:6], str(int(left)), str(int(top)),str(int(right)),str(int(bottom))))

一开始我的关注点是放在box的内容读取上,他是四个浮点数位于一个列表下,而且搜到的方法也和列表内容相关

后面通过我的控制变量试验后发现这里是没问题的,所以问题就是score[:6]的写入报了错

我的解决办法是:

"""先把读取到的score转化为字符,再进行写入"""
xx = str(anno['score'])
ff.write("%s %s %s %s %s\n" %(xx[:6], str(int(left)), str(int(top)),str(int(right)),str(int(bottom))))

如上就可以顺利执行了,没报TypeError: ‘float’ object is not subscriptable

原先想过,直接把str加在最后一句上,即:

ff.write("%s %s %s %s %s\n" %(str(score[:6]), str(int(left)), str(int(top)),str(int(right)),str(int(bottom))))

发现还是会报错,也就是说直接写的时候读的不能是浮点型数据(可能是此处直接从annos的列表中读取出来的浮点数据不能直接处理),即使经过中间处理也不行,需要转化为字符型后再写入即可解决

其实这个问题更像一个bug并不是一定会出现的问题,如果报错了,

就要花时间解决一下。

总结

到此这篇关于Python TypeError: ‘float‘ object is not subscriptable错误解决的文章就介绍到这了,更多相关TypeError: ‘float‘ object is not subscriptable内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python yield 小结和实例
Apr 25 Python
浅谈MySQL中的触发器
May 05 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
python爬取网页内容转换为PDF文件
Jul 28 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
Python实现钉钉订阅消息功能
Jan 14 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
Django中F函数的使用示例代码详解
Jul 06 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
python 使用pandas读取csv文件的方法
Dec 24 #Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 #Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 #Python
Python中np.random.randint()参数详解及用法实例
Sep 23 #Python
Python中tqdm的使用和例子
Sep 23 #Python
python 镜像环境搭建总结
Sep 23 #Python
Python创建SQL数据库流程逐步讲解
Sep 23 #Python
You might like
在PHP中使用模板的方法
2008/05/24 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
vuex实现购物车功能
2020/06/28 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
Python enumerate索引迭代代码解析
2018/01/19 Python
python构建深度神经网络(续)
2018/03/10 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
致跳远、跳高运动员广播稿
2014/01/09 职场文书
财务总监岗位职责
2014/03/07 职场文书
学习经验交流会主持词
2014/04/01 职场文书
优秀应届生求职信
2014/06/16 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers