2016-06-08 4 views
0

В Python, я получаю «TypeError: не все аргументы преобразуются во строке форматирования»Не все аргументы преобразуются

Я не знаю, почему это происходит. Эта линия подсвечивается, где проблема лежит - 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() 

Thank you.

+0

Вы пробовали отлаживать через 'pdb'? – NoobEditor

+0

Извините, я не знаю, как это сделать. @NoobEditor –

ответ

3

У вас есть кортеж с 4-х элементов:

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

Но только 3 замещающих заполнителей:

'%s,%s,%s' 

При попытке форматирования, что не все "аргументы" (кортеж элементы) будут преобразованы в строки для форматирования (следовательно, ошибки). Либо измените кортеж, чтобы удалить элемент, либо измените интерполированную строку, чтобы добавить другое поле (например, '%s,%s,%s,%s').

+0

Я думал, что это будет что-то очевидное. Благодарю. –

Смежные вопросы