Python?TypeError:?‘float‘?object?is?not?subscriptable錯誤解決
前言
其實就是個小問題,但是爆出來的時候也很莫名其妙。因為之前都跑得好好的,只是換了不同的文件去跑才出的問題,關(guān)鍵是不同的文件要處理的內(nèi)容和格式都是完全一樣的,一個順利跑完,一個就報TypeError: ‘float’ object is not subscriptable這個錯,就非常無語。接下來就是看看怎么解決問題了:
一開始自然是直接搜索問題,尋找解決辦法,實話實說,看了一些博客,但是并沒有直接找到解決辦法,但是從中獲得了一些想法,對問題理解更清楚一點。下面是找到的一種解釋:
然后說一下我的具體應(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)注點是放在box的內(nèi)容讀取上,他是四個浮點數(shù)位于一個列表下,而且搜到的方法也和列表內(nèi)容相關(guā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)還是會報錯,也就是說直接寫的時候讀的不能是浮點型數(shù)據(jù)(可能是此處直接從annos的列表中讀取出來的浮點數(shù)據(jù)不能直接處理),即使經(jīng)過中間處理也不行,需要轉(zhuǎn)化為字符型后再寫入即可解決
其實這個問題更像一個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)文章
Python Numpy實現(xiàn)計算矩陣的均值和標(biāo)準(zhǔn)差詳解
NumPy(Numerical Python)是Python的一種開源的數(shù)值計算擴(kuò)展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表結(jié)構(gòu)要高效的多。本文主要介紹用NumPy實現(xiàn)計算矩陣的均值和標(biāo)準(zhǔn)差,感興趣的小伙伴可以了解一下2021-11-11PyTorch模型轉(zhuǎn)換為ONNX格式實現(xiàn)過程詳解
這篇文章主要為大家介紹了PyTorch模型轉(zhuǎn)換為ONNX格式實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04python 使用遞歸的方式實現(xiàn)語義圖片分割功能
這篇文章主要介紹了python 使用遞歸的方式實現(xiàn)語義圖片分割,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Python實現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實例
這篇文章主要為大家介紹了Python實現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Python3 串口接收與發(fā)送16進(jìn)制數(shù)據(jù)包的實例
今天小編就為大家分享一篇Python3 串口接收與發(fā)送16進(jìn)制數(shù)據(jù)包的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中的實現(xiàn)方法
這篇文章主要介紹了Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中,通過這個腳本,我們就可以把專業(yè)dephi程序分析的結(jié)果,轉(zhuǎn)移到IDA專業(yè)逆向代碼分析的平臺,實現(xiàn)聯(lián)動,需要的朋友可以參考下2022-08-08