并非所有参数都已转换

2024-05-06 06:53:45 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我得到了'TypeError:not all arguments converted during string formatting'

我不知道为什么会这样。这一行被突出显示为问题所在-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()

谢谢你


Tags: csvintargetdatalinecodeopenlevel
1条回答
网友
1楼 · 发布于 2024-05-06 06:53:45

有一个包含4个元素的元组:

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

但只有3个替换占位符:

'%s,%s,%s'

当您尝试格式化它时,并不是所有的“参数”(元组元素)都将转换为格式化的字符串(因此会出现错误)。要么更改元组以删除元素,要么更改正在插入的字符串以添加另一个字段(例如'%s,%s,%s,%s'

相关问题 更多 >