Sto provando a scrivere una funzione per convertire una lista python in una matrice JSON di {"mpn": "list_value"} oggetti, dove "mpn" è il valore letterale della stringa che mi serve per ogni oggetto ma "list_value" è il valore dall'elenco python. Userò l'output di questa funzione per una richiesta get dell'API.Python: Convertire un elenco di dizionari Python in una matrice di oggetti JSON
part_nums = ['ECA-1EHG102','CL05B103KB5NNNC','CC0402KRX5R8BB104']
def json_list(list):
lst = []
d = {}
for pn in list:
d['mpn']=pn
lst.append(d)
return json.dumps(lst, separators=(',',':'))
print json_list(part_nums)
Questa funzione attuale non funziona e restituisce l'ultimo valore nella lista di pitone per tutti gli oggetti JSON:
>[{"mpn":"CC0402KRX5R8BB104"},{"mpn":"CC0402KRX5R8BB104"},{"mpn":"CC0402KRX5R8BB104"}]
Tuttavia, ovviamente ho bisogno della mia funzione per restituire i valori dell'elenco unici negli oggetti come tale:
>[{"mpn":"ECA-1EHG102"},{"mpn":"CL05B103KB5NNNC"},{"mpn":"CC0402KRX5R8BB104"}]
La linea di fondo è che non capisco perché questa funzione non funziona. Mi aspettavo di poter aggiungere un dizionario con una sola coppia chiave {valore: valore} a una lista python e non avrebbe importanza che tutti i dizionari avessero la stessa chiave perché sarebbero indipendenti. Grazie per l'aiuto.
mossa 'd = {}' due linee verso il basso, all'interno del 'for' – user124114