Tengo un código de python que convierte el dict normal en JSON de la siguiente manera
groups = { 'g_1': [ {'name': 'something', 'id': '1'}, {'name': 'something', 'id': '1'} ], 'g_2': [ {'name': 'something', 'id': '1'}, {'name': 'something', 'id': '1'} ] }He usado json.dumps para convertir eso en un json de la siguiente manera
import json groups = json.dumps(groups)Quiero leer los datos en javascript como un objeto. ¿Cómo accedo?
var groups=JSON.parse({{ groups }}) pero no funcionó. Ayúdame a analizar los datos como objeto javascript.
Esto debería funcionar:
var groups = JSON.parse('{{ groups|safe }}');
probar:
var groups = JSON && JSON.parse({{ groups }})|| $.parseJSON({{ groups }});Es posible que tenga problemas con el carácter ' al intentar ejecutar var groups = "{{ groups|safe }}"; o var groups = '{{ groups|safe }}'; . Si ambas respuestas no funcionan, pruebe esta solución:
function escapeRegExp(str) { return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"); } function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); } var str = "{{ groups|safe }}"; var new_str = replaceAll(str, "'", "\""); var groups = JSON.parse(new_str); Tuve que reemplazar todos ' a " en el diccionario para que JSON.parse funcionara. Para obtener más información sobre estas funciones, consulte Stack Cómo reemplazar todas las apariciones de una cadena en la pregunta de JavaScript .