tengo la siguiente cadena:Analizar sólo un nivel de JSON
'{
"key1": "val1",
"key2": ["a","b", 3],
"key3": {"foo": 27, "bar": [1, 2, 3]}
}'
Quiero analizar sólo en el nivel de modo resultado debe ser un diccionario de una sola planta con llave, y el valor debe ser sólo una cadena (Don' t necesidad de analizarlo)
para cadena dada que me diera siguiente diccionario:
{
"key1": "val1",
"key2": "['a','b', 3]",
"key3": "{'foo': 27, 'bar': [1, 2, 3]}"
}
¿hay una forma rápida de hacerlo? Sin analizar cadenas enteras a json y convertir todos los valores a cadenas.
que haya que analizar toda la cadena JSON, y agarrar las partes de cuerda .. es factible, pero dudo que vale la pena el esfuerzo . ¿El rendimiento es realmente crítico? –
sí, debería ser parte del código crítico de rendimiento –
Además, si convierto directamente cada valor en str, recibiré prefijos desagradables u para cadenas: 'foo = json.loads ('{" key1 ":" val1 "," key2 " : ["a", "b", 3], "key3": {"foo": 27, "bar": [1, 2, 3]}} ') ' ' dict ([(k, str (v)) para k, v en foo.iteritems()]) ' me dará: ' {u'key1 ':' val1 ', u'key2': "[u'a ', u'b' , 3] ", u'key3 ':" {u'foo': 27, u'bar ': [1, 2, 3]} ' –