Iterare array di dizionari

di il
3 risposte

Iterare array di dizionari

Ho un array di dizionari creato cosi:

[
{
“Chiave” : “1”
“Valore” : “val”
},
{
“Chiave” : “1”
“Valore” : “val2”
},
{
“Chiave” : “2”
“Valore” : “val”
}
]

E vorrei trasformarlo in:

[
{
“Chiave” : “1”
“Valore” : [“val”, “val2”]
},
{
“Chiave” : “2”
“Valore” : “val”
}
]

Spero di essermi spiegato bene. In pratica vorrei rendere uniche le chiavi uguali e raggruppare i valori con chiave uguale.

Qualcuno mi aiuti... come posso risolvere?

3 Risposte

  • Re: Iterare array di dizionari

    Butta giù un pò di codice o l'algoritmo in pseudo codice e poi vediamo.
  • Re: Iterare array di dizionari

    
    result=[]
    diz["chiave"] = c
    diz["valore"] = v
    result.append(diz)
    
     
                toJSON = {}
                lista = []
                for kkk in result:        
                    if(kkk == 'chiave' and diz[kkk] == prec):
                        lista.append(diz['valore’'])
                        toJSON['chiave'] = diz[kkk]
                        toJSON['valore'] = lista
                prec = kkk 
                
     
  • Re: Iterare array di dizionari

    Ci sono un pò di errori:
    - indentanzione farlocca. Che editor usi?
    - diz lo devi inizializzare prima di assegnarli valori
    - chi è c?
    - chi è v?

    Analizziamo la prima condizione del rigo if ovvero kkk == 'chiave'
    - result è una lista di dizionari. kkk è un elemento di result --> kkk è un dizionario. Il confronto di un dizionario con una stringa è sempre falso --> le istruzioni sotto if non saranno mai eseguite

    Analizziamo la seconda condizione del rigo if ovvero diz[kkk] == prec
    - chi è prec?
    - un dizionario non può avere un dizionario per chiave --> diz[kkk]
    - a cosa serve verificare diz?

    PS poiché la prima condizione del if è falsa, la seconda non sarà mai valutata, motivo per cui non da errore.

    Ti consiglio di scrivere prima un programma che iteri su di una lista di dizionari e sulle sue chiavi e poi lo modifichi per avere l'output desiderato.
Devi accedere o registrarti per scrivere nel forum
3 risposte