2016-06-08 62 views
0

在Python,我得到「類型錯誤:不串轉換過程中的所有參數格式」並非所有的參數轉換

我不知道爲什麼會這樣。此行突出顯示問題所在 - data.append('%s,%s,%s'%line['code'],line['level'],line['target'],line['distancefromtarget']

任何人都可以找到問題嗎?

如果有幫助,下面是圍繞此行的其他代碼。

def updatestocklevel(quantity, stocklevel, code): 
     with open('stockcontrol.csv',newline='') as f: 
       for line in f: 
        if code in line: 
         data = line.split(",") 
         target = (data[2]) 
     updatetarget = int(target) - int(stocklevel) 
     newlevel = stocklevel - quantity 
     stocklevel = str(stocklevel) 
     newlevel = str(newlevel) 
     updatetarget = str(updatetarget) 
     import sys 
     import csv 

     data=[] 
     code = code 
     newval= newlevel 
     newtlevel = updatetarget 
     f=open("stockcontrol.csv") 
     reader=csv.DictReader(f,fieldnames=['code','level', 'target', 'distancefromtarget']) 
     for line in reader: 
      if line['code'] == code: 
      line['level']= newval 
      line['distancefromtarget']= newtlevel 
      data.append('%s,%s,%s'%(line['code'],line['level'],line['target'],line['distancefromtarget'])) 
     f.close() 

     f=open("stockcontrol.csv","w") 
     f.write("\n".join(data)) 
     f.close() 

謝謝。

+0

您是否嘗試通過'pdb'進行調試? – NoobEditor

+0

對不起,我不知道該怎麼做。 @NoobEditor –

回答

3

你有一個元組有4個要素:

(line['code'],line['level'],line['target'],line['distancefromtarget']) 

但只有3替換佔位符:

'%s,%s,%s' 

當您嘗試格式化,並不是所有的 「論據」(元組元素)將被轉換爲字符串格式(因此錯誤)。請更改元組以刪除元素,或者更改要插入的字符串以添加另一個字段(例如'%s,%s,%s,%s')。

+0

我認爲這將是明顯的。謝謝。 –

相關問題