Leggi Archivio Attori

DRDLCN (8070 points)
3 67 104
asked Dec 9, 2018 in Es3 by DRDLCN (8,070 points)

- leggi_archivio_attori(file_json)
    che legge l'archivio json fornito in input che descrive tutti gli attori
    (con lo stesso formato del file di esempio actors.json)
    e torna un dizionario catalogo_attori { nome -> oggetto di tipo Attore } in cui:
    - le chiavi sono i nomi degli attori
        (prese dal campo "NAME" del dizionario presente per ogni attore nel file json)
    - i valori sono le corrispondenti istanze di tipo Attore create col costruttore passando
        come argomento il dizionario (letto dal file json) che contiene le informazioni dell'attore.

Penso di non aver compreso bene cosa deve fare questa funzione, allora:

devo creare un dizionario che come chiavi ha gli attori e fin qui tutto ok.. ma come valori non ho capito cosa va messo, Come faccio a metterci un istanza di tipo Attore se il costruttore di tipo Attore richiede il dizionario che sto creando? ho confuso forse?

146 views

2 Answers

_andrea_ (45670 points)
2 39 297
answered Dec 9, 2018 by _andrea_ (45,670 points)
Il json è un dizionario di dizionari con questa struttura
{
"Nome attore 1":{dizionario attore 1}
"Nome attore 2":{dizionario attore 2}
"Nome attore 3":{dizionario attore 3}
}
Aprendo il json ottieni un dizionario in cui le chiavi sono i nomi degli attori e i valori sono dizionari che contengoni i dati tipo NAME, REALNAME, BIRTH, DEAD, GENDER. Tu devi creare un dizionario che ha come chiavi sempre i nomi, ma come valori le istanze Attore create a partire dai dizionari specifici per ogni attore, non quello totale ottenuto dal json
DRDLCN (8070 points)
3 67 104
commented Dec 9, 2018 by DRDLCN (8,070 points)

quindi prima mi faccio le istanze Attore con i dizionari specifici e poi faccio - leggi_archivio_attori(file_json)  no?

_andrea_ (45670 points)
2 39 297
commented Dec 9, 2018 by _andrea_ (45,670 points)
Leggi_archivio_attori legge il json e crea le istanze Attore a partire dai dizionari all'interno del file. Mette tutto in un altro dizionario col formato
{
"Nome attore 1":istanza Attore 1
"Nome attore 2":istanza Attore 2
}
E lo ritorna
DRDLCN (8070 points)
3 67 104
commented Dec 9, 2018 by DRDLCN (8,070 points)
eh ok, ma l'istanza Attore 1 come la faccio?

chiamo il costruttore Attore no? Che pero mi chiede un dizionario del singolo attore
p
pietrobrega (4460 points)
0 13 42
commented Dec 9, 2018 by pietrobrega (4,460 points)
Esatto e tu devi fare Attore(dizionario) dove dizionario è l'elemento con chiave nome attore dentro al catalogo attori ossia un dizionario con dentro tutti i dati dell'attore
_andrea_ (45670 points)
2 39 297
commented Dec 10, 2018 by _andrea_ (45,670 points)
Devi passare {dizionario attore} al costruttore
Sickboy (28240 points)
4 23 68
answered Dec 9, 2018 by Sickboy (28,240 points)
Fai un ciclo che scorre i nomi degli attori cioè i dizionari del json dentro ti costruisci un oggetto attore e carichi il dizionario che deve tornare la funzione, con chiave oggetto.nome e valore l'oggetto stesso