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中迭代器(iterator)用法实例分析
Apr 29 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
Python存取XML的常见方法实例分析
Mar 21 Python
Python实现的下载网页源码功能示例
Jun 13 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
浅谈Python 递归算法指归
Aug 22 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
Python内置函数locals和globals对比
Apr 28 Python
python 使用建议与技巧分享(四)
Aug 18 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
第十三节 对象串行化 [13]
2006/10/09 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
初学python数组的处理代码
2011/01/04 Python
python实现画圆功能
2018/01/25 Python
tensorflow识别自己手写数字
2018/03/14 Python
Python File(文件) 方法整理
2019/02/18 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
工业自动化专业毕业生推荐信
2013/11/18 职场文书
党员活动总结
2015/02/04 职场文书
干部培训工作总结2015
2015/05/25 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
在Docker容器中部署SQL Server
2022/04/11 Servers