Tengo un diccionario que se ve así:

{"first": {"phone": 1900,"other": 1}, "second": {"adwords": 1419, "no_om_source": 1223}}

Convierto este dictado en formato json. Quería cambiar todos los números dentro del diccionario para que también fueran cambios en las cadenas.

 def convert(o):
        if isinstance(o, np.generic): return o.item()  
        raise TypeError

 jsonContent = json.dumps(myDict, default=convert)
    with open('data.json', 'w', encoding='utf-8') as f:
        json.dump(jsonContent, f, ensure_ascii=False, indent=4)
    return jsonContent

Sin embargo, cuando intento imprimir el jsonContent, los valores todavía están en números y no en cadenas. ¿Cómo puedo cambiar esto?

0
x89 8 may. 2021 a las 03:04

1 respuesta

La mejor respuesta

Pruebe esto antes de convertir su dict en formato json.

myDict = {"first": {"phone": 1900,"other": 1}, "second": {"adwords": 1419, "no_om_source": 1223}}
for x in myDict:
    for k,v in myDict[x].items():
        myDict[x][k] = str(v)

Salida

{'first': {'phone': '1900', 'other': '1'}, 'second': {'adwords': '1419', 'no_om_source': '1223'}}
1
BuddyBob 8 may. 2021 a las 00:14