我一直在嘗試創建一個類,它將接受一個CSV文件,讀取它並使用其中一行作爲關鍵字將其排序到字典中。我可以在網上找到與csv文件有關的所有內容,並在課堂之外處理它們。將CSV排序到類中的字典
我試圖打開csv文件(稱爲books.csv
)並將每行讀入Shelf類的私有屬性,稱爲__books
,它是一個字典。字典應該使用ISBN作爲關鍵字。
我想將csv文件books.csv
放到字典__books{ }
中,並將第4行作爲關鍵字,但每次運行它時,都會指出books.csv
文件未被讀入字典中。
的第一段代碼是:
class Book:
def __init__(self, title, author, price, isbn):
self.title = title
self.author = author
self.price = price
self.isbn=isbn
def getISBN(self):
return self.isbn
class Shelf:
__books={}
def __init__(self,filename):
f=open(filename, encoding="utf8")
csvreader = csv.reader(f)
for row in csvreader:
abook=Book(row[0],row[1],row[2],row[3])
self.__books[row[4]]=abook
這個代碼將被調用到另一個文件和相應的代碼是:
aShelf=Shelf("books.csv")
abook=aShelf._Shelf__books["0743482836"]
if abook.author == "A. Goose":
pass
else:
raise Exception
你是什麼意思通過導入字典?你現在有什麼不能正常工作? –
很抱歉,如果不清楚。實際的問題是:打開csv文件(稱爲「books.csv」)並將每行讀入Shelf類的一個私有屬性,稱爲 __books,它是一個字典。字典應該使用ISBN作爲關鍵字。我想將csv文件「books.csv」放入字典__books {}中,並將第四個拖放作爲關鍵字,但每次運行它時,都會聲明「books.csv」文件未被讀入字典。 – Albi
我認爲它是由於在csvreader中開始行的縮進而引起的。如果你在一個層次上轉換它,那麼它將成爲你的'__init__'方法的一部分,並且應該可以工作。 –