簡體   English   中英

為什么float()無法將我的字符串轉換為浮點數?

[英]Why does float() fail to convert my string to a float?

我的程序在嘗試將字符串列表中的字符串轉換為浮點數時給出了錯誤。 該列表從CSV文本文件中的一行讀取,然后分成一個列表。 我如何做這項工作,為什么會出錯? 以下是相關的代碼:

def Main():
    srcf = open(bkp, 'r')
    for line in srcf:
        liLn = line.split(',')

...然后調用以下函數......

def Pred_PSME(liLn):
    dbh = float(liLn[6])

這是文件中的行:

1345327,20486,"ABCO","Abies concolor","Y","Y","31.496","0.0779","19.3567",,"0.5602","0",1,"0.9268","11.8968","2.6832","6.6646","2399.256",54.47,24.15,248.47,42.19,9.16,8.16,9.23,272.27,264.11,369.30,345.15,71.80,0.00,0.00,4393.57,4106.22,3239.25,3142.07,854.30,0.00,0.00,,12.70,10.16,15.24,0.02,0.04,0.38,0.38,0.00,0.00,1.95,1.83,1.44,1.40

我收到此錯誤消息:

Traceback (most recent call last):  
  File "/home/cfws/python/error_calcs/FC_NF_PredInt_Gen8.py", line 263, in <module>  
    Main()  
  File "/home/cfws/python/error_calcs/FC_NF_PredInt_Gen8.py", line 36, in Main  
    li_tBQI = BQI_Calc(liLn)  
  File "/home/cfws/python/error_calcs/FC_NF_PredInt_Gen8.py", line 63, in BQI_Calc  
    di_eqns = {"PSME": Pred_PSME(liLn), "ABAM":Pred_ABAM(liLn), \  
  File "/home/cfws/python/error_calcs/FC_NF_PredInt_Gen8.py", line 172, in Pred_PSME  
    dbh = float(liLn[6])  
ValueError: could not convert string to float: "31.496"

我在Ubuntu Linux計算機上使用Python 2.7。

你需要從字符串中刪除雙引號。 然后,您將提供float()可以轉換的合法浮點字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM