Estoy intentando escribir una función para convertir una lista de Python en una matriz JSON de {"mpn": "list_value"} objetos, donde "mpn" es el valor literal de cadena que necesito para cada objeto, pero "list_value" es el valor de la lista de python. Usaré el resultado de esta función para una solicitud de obtención de API.Python: Convierta una lista de diccionarios de Python en una matriz de objetos 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)
Esta función actual no funciona y devuelve último valor de la lista de Python para todos los objetos JSON:
>[{"mpn":"CC0402KRX5R8BB104"},{"mpn":"CC0402KRX5R8BB104"},{"mpn":"CC0402KRX5R8BB104"}]
Sin embargo, por supuesto que necesita mi función para devolver los valores de las listas únicas de los objetos como tal:
>[{"mpn":"ECA-1EHG102"},{"mpn":"CL05B103KB5NNNC"},{"mpn":"CC0402KRX5R8BB104"}]
En resumen, no entiendo por qué esta función no funciona. Esperaba poder agregar un diccionario con un único par de {key: value} a una lista de python y no importaría que todos los diccionarios tengan la misma clave porque serían independientes. Gracias por tu ayuda.
movimiento 'd = {}' dos líneas hacia abajo, dentro de la 'for' – user124114