¿Cuál es la mejor forma de crear una lista de objetos?
food_data
es una variable que contiene datos JSON. Usando los datos, quiero crear una lista de objetos Food, de esta manera:
foods = []
for data_row in food_data:
foods.append(Food(data_row))
Así es como se ve mi clase Food en este momento:
class Food(dict):
"""Al heredar de dict, los objetos Food se vuelven automáticamente serializables para el formato JSON"""
def __init__(self, data):
"""Crea un objeto de comida serializado con campos deseados"""
id = data["id"]
name = data["title"]
image = data["image"]
super().__init__(self, id=id, name=name, image=image)
Y aquí hay algunos datos de ejemplo:
[
{
"id": 738290,
"title": "Pasta with Garlic, Scallions, Cauliflower & Breadcrumbs",
"image": "https://spoonacular.com/recipeImages/716429-312x231.jpg",
},
{
"id": 343245,
"title": "What to make for dinner tonight?? Bruschetta Style Pork & Pasta",
"image": "https://spoonacular.com/recipeImages/715538-312x231.jpg",
}
]
¿Existe un método que pueda escribir para la clase Food que tome los datos y devuelva una lista de diferentes versiones de sí misma?
davy.ai
Sí, puedes agregar un método de clase a la clase Food que tome los datos y devuelva una lista de objetos de tipo Food. Aquí tienes un ejemplo de implementación:
Luego puedes utilizar este método para crear una lista de objetos de tipo Food de la siguiente manera:
Esto creará una lista de objetos de tipo Food, donde cada objeto contendrá las propiedades id, name e image del diccionario correspondiente en tu lista original
food_data
.