我很新的蟒蛇,並一直在努力,因爲我去(不是最好的方法,這種深入到蟒蛇,但時間的緣故,我需要太)自學。我輸入的模塊是Tkinter和csv。讓我知道你是否有任何問題,AttributeError的:「設置」對象有沒有屬性「項目」
爲了簡潔起見,我不打算在這裏發佈我的整個代碼,但我會包括整個錯誤並指出錯誤適用的行。下面的所有內容都在名爲MainApp的類中。
def SubmitEdit(self):
self.key=""
self.val=""
new_rows = []
self.changes = {self.key:self.val}
with open("info.csv",'rb') as f:
reader = csv.reader(f):
for row in reader:
new_row = row
for field in row:
if field == "NAME":
print "groovy"
for (self.key,self.val) in self.changes.items():
new_row = [ x.replace(self.key,self.val) for x in new_row]
new_rows.append(new_row)
with open("info.csv","wb") as f:
writer = csv.writer(f):
writer.writerows(new_rows)
我寫了這個代碼進行分開,以確保它把它在計劃工作過它完美地工作,但是當我把它放在類和所做的更改(我認爲)我需要作出代碼/變量行不起作用。所以這讓我相信我只是錯誤地糾正了一些事情。
以下是錯誤:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py",line 1536, in__call__
return self.func(*args)
File "C:\Python27\draft.py", line 328, in SubmitEdit
for (self.key,self,val) in self.changes:
AttributeError: 'set' object has no attribute 'items'
當線328指的是行: 「在self.changes.items或(self.key,self.val)():」
我改變了(我感覺)存在或不存在「自我」。對於所有的變量,但我不能讓它工作。
編輯: 我改變了代碼如下所示:
def SubmitEdit(self):
new_rows = []
self.changes = {"MTMA",123}
with open("info.csv",'rb') as f:
reader = csv.reader(f):
for row in reader:
new_row = row
for field in row:
if field == "NAME":
print "groovy"
for (key,val) in self.changes.items():
new_row = [ x.replace(key,val) for x in new_row]
new_rows.append(new_row)
with open("info.csv","wb") as f:
writer = csv.writer(f):
writer.writerows(new_rows)
按照該意見,但仍然得到確切同樣的錯誤。
井本身是說有()稱爲'項目沒有屬性'的錯誤。因此,嘗試從'self.changes.items刪除'.items()'()'http://docs.python.org/3/library/stdtypes.html#dictionary-view-objects 此外,你爲什麼要做'self.changes = {self.key:self.val}'?如果你只是想引用一個字典,添加'self.key:self.val'就沒有必要,因爲'self.changes = {}'就足夠了。 – awbemauler
當我拿走.items()時,它返回一個ValueError,它表示「需要多個值來解包」。我會嘗試將字典留空。 – MTMA
是的,因爲你的鑰匙和價值沒有任何東西。你什麼也沒有發起這些變量。 – awbemauler