Python?TypeError:?‘float‘?object?is?not?subscriptable錯誤解決
前言
其實就是個小問題,但是爆出來的時候也很莫名其妙。因為之前都跑得好好的,只是換了不同的文件去跑才出的問題,關鍵是不同的文件要處理的內(nèi)容和格式都是完全一樣的,一個順利跑完,一個就報TypeError: ‘float’ object is not subscriptable這個錯,就非常無語。接下來就是看看怎么解決問題了:
一開始自然是直接搜索問題,尋找解決辦法,實話實說,看了一些博客,但是并沒有直接找到解決辦法,但是從中獲得了一些想法,對問題理解更清楚一點。下面是找到的一種解釋:

然后說一下我的具體應用:
我需要從預測生成的 json文件獲取預測分數(shù)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文件內(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))))
一開始我的關注點是放在box的內(nèi)容讀取上,他是四個浮點數(shù)位于一個列表下,而且搜到的方法也和列表內(nèi)容相關
后面通過我的控制變量試驗后發(fā)現(xiàn)這里是沒問題的,所以問題就是score[:6]的寫入報了錯
我的解決辦法是:
"""先把讀取到的score轉(zhuǎ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)還是會報錯,也就是說直接寫的時候讀的不能是浮點型數(shù)據(jù)(可能是此處直接從annos的列表中讀取出來的浮點數(shù)據(jù)不能直接處理),即使經(jīng)過中間處理也不行,需要轉(zhuǎn)化為字符型后再寫入即可解決
其實這個問題更像一個bug,并不是一定會出現(xiàn)的問題,如果報錯了,
就要花時間解決一下。
總結(jié)
到此這篇關于Python TypeError: ‘float‘ object is not subscriptable錯誤解決的文章就介紹到這了,更多相關TypeError: ‘float‘ object is not subscriptable內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Django的model查詢操作與查詢性能優(yōu)化
這篇文章主要介紹了詳解Django的model查詢操作與查詢性能優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
Python基于Opencv來快速實現(xiàn)人臉識別過程詳解(完整版)
這篇文章主要介紹了Python基于Opencv來快速實現(xiàn)人臉識別過程詳解(完整版)隨著人工智能的日益火熱,計算機視覺領域發(fā)展迅速,今天就為大家?guī)碜罨A的人臉識別基礎,從一個個函數(shù)開始走進這個奧妙的世界,需要的朋友可以參考下2019-07-07
Python AutoCAD 系統(tǒng)設置的實現(xiàn)方法
這篇文章主要介紹了Python AutoCAD 系統(tǒng)設置的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04

