因此,我正在使用来自CSV文件的信息来创建一些对象,例如:
def ajouter_morceaux_csv(db,csv):
data_csv= read_data(csv)
for i in range(len(data_csv[0])):
titre = data_csv[0][i]
année = data_csv[1][i]
artistes = data_csv[2][i]
style= data_csv[3][i]
guitare = data_csv[4][i]
note = data_csv[5][i]
with shelve.open(db) as db_data:
del(db_data[str(data_csv[0][i])])
db_data[str(data_csv[0][i])]= Data_Song(titre,année,artistes,style,guitare,note=note)
然后我需要打印出该“数据库”。我需要先按标题将其打印,然后再按“ note”的值进行打印]
我使用标题作为键名,这样可能会更容易,但是我仍然不知道如何通过对象的值注释对它进行排序。
这是我的打印方式:
def afficher_tout(db):
with shelve.open(db) as db_data:
klist = list(db_data.keys())
klist.sort()
print("Base de données musicales complète :")
print()
for key in klist:
print("Titre: " + str(db_data[key].titre))
print("Année: " + str(db_data[key].année))
print("Artistes: " + str(db_data[key].artistes))
print("Style: " + str(db_data[key].style))
print("Guitare: " + str(db_data[key].guitare))
print("note: " + str(db_data[key].note))
print()
除了shelfve,os,sys外,我无法将任何模块导入此项目
您可以为.sort()
和sorted()
提供键功能。
klist = sorted(db_data.keys(), key=lambda k: (db_data[k].titre, db_data[k].note))