Как создать переменную экземпляра из списка ниже, который содержит ключ словаря с именем price, и я пытаюсь получить прайс-лист всех книг, используя класс с именем Library
1) Вот списоккниг и их подробностей
data = { "books" : [ { "number_of_pages" : 849,
"price" : 13.550000000000001,
"publish_date" : 2011,
"subjects" : [ "Time travel",
"Assassination"
],
"title" : "11/22/63"
},
{ "number_of_pages" : 732,
"price" : 7.9900000000000002,
"publish_date" : 1999,
"subjects" : [ "Authors",
"Custody of children",
"Grandfathers",
"Haunted houses",
"Novelists",
"Trials (Custody of children)",
"Widowers",
"Widows",
"Writer's block"
],
"title" : "Bag of bones"
},]}
2) Я создал класс с именем Library, который распакует список и сохранит переменные
class Library:
def __init__(self,**kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
#print(k,v)
if 'price' in v[0:][1]:
for c in v[0:][1].items():
if 'price' in c:
self.price=c['price']
def price_book(self):
return self.price
def __float__(self):
return self.price
Libra = Library(**data)
Price=Libra.price_book()
print(Price)
. При попытке возврата с использованием экземпляров его перенастройкаошибка установки переменной для цены?
Как установить переменную экземпляра и получить список цен в библиотеке?
С уважением
Обновление 1:
self.price = c ['price']
TypeError: индексы кортежа должны быть целыми или кусочками, а не str
Обновление2:
class Library:
def __init__(self,**kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
self.price = []
for k, v in kwargs.items():
for i in range(len(v)):
self.price.append(v[i]['price'])
def price_book(self):
return self.price
def discount_book(self):
self.price=self.price
return list(map((lambda x: x -2), self.price))
def __float__(self):
return self.price
Libra = Library(**data)
Price=Libra.price_book()
Pri=Libra.discount_book()
print(Price)
print(Pri)