欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?TypeError:?‘float‘?object?is?not?subscriptable錯誤解決

 更新時間:2022年12月23日 14:36:44   作者:清夢枕星河~  
發(fā)現(xiàn)問題寫python的時候出現(xiàn)了這個錯,所以想著給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Python?TypeError:?‘float‘?object?is?not?subscriptable錯誤的解決辦法,需要的朋友可以參考下

前言

其實(shí)就是個小問題,但是爆出來的時候也很莫名其妙。因?yàn)橹岸寂艿煤煤玫?,只是換了不同的文件去跑才出的問題,關(guān)鍵是不同的文件要處理的內(nèi)容和格式都是完全一樣的,一個順利跑完,一個就報TypeError: ‘float’ object is not subscriptable這個錯,就非常無語。接下來就是看看怎么解決問題了:

一開始自然是直接搜索問題,尋找解決辦法,實(shí)話實(shí)說,看了一些博客,但是并沒有直接找到解決辦法,但是從中獲得了一些想法,對問題理解更清楚一點(diǎn)。下面是找到的一種解釋:

然后說一下我的具體應(yīng)用:

我需要從預(yù)測生成的 json文件獲取預(yù)測分?jǐn)?shù)score和預(yù)測位置(坐標(biāo)值)把它們寫入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文件內(nèi)容格式:

{
	"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
				]
		},
		...
	]
}

具體問題是在執(zhí)行寫入的時候出現(xiàn)的:

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

一開始我的關(guān)注點(diǎn)是放在box的內(nèi)容讀取上,他是四個浮點(diǎn)數(shù)位于一個列表下,而且搜到的方法也和列表內(nèi)容相關(guān)

后面通過我的控制變量試驗(yàn)后發(fā)現(xiàn)這里是沒問題的,所以問題就是score[:6]的寫入報了錯

我的解決辦法是:

"""先把讀取到的score轉(zhuǎn)化為字符,再進(jìn)行寫入"""
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))))

如上就可以順利執(zhí)行了,沒報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))))

發(fā)現(xiàn)還是會報錯,也就是說直接寫的時候讀的不能是浮點(diǎn)型數(shù)據(jù)(可能是此處直接從annos的列表中讀取出來的浮點(diǎn)數(shù)據(jù)不能直接處理),即使經(jīng)過中間處理也不行,需要轉(zhuǎn)化為字符型后再寫入即可解決

其實(shí)這個問題更像一個bug,并不是一定會出現(xiàn)的問題,如果報錯了,

就要花時間解決一下。

總結(jié)

到此這篇關(guān)于Python TypeError: ‘float‘ object is not subscriptable錯誤解決的文章就介紹到這了,更多相關(guān)TypeError: ‘float‘ object is not subscriptable內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論