ho la seguente stringa:Parse un solo livello di JSON
'{
"key1": "val1",
"key2": ["a","b", 3],
"key3": {"foo": 27, "bar": [1, 2, 3]}
}'
voglio analizzare solo il livello in modo risultato dovrebbe essere un dizionario di un livello con la chiave e il valore dovrebbe essere solo una stringa (don' t bisogno di analizzarlo)
per data stringa mi dovrebbe dare seguito dizionario:
{
"key1": "val1",
"key2": "['a','b', 3]",
"key3": "{'foo': 27, 'bar': [1, 2, 3]}"
}
c'è un modo veloce per farlo? Senza analizzare tutta la stringa in json e convertire tutti i valori in stringhe.
si deve analizzare l'intera stringa JSON, e afferrare le parti degli archi .. è fattibile, ma dubito che sia valsa la pena . Le prestazioni sono davvero critiche? –
sì, dovrebbe essere parte del codice critico delle prestazioni –
Anche se io converto direttamente ciascun valore in str, riceverò fastidiosi prefissi u per le stringhe: 'foo = json.loads ('{" key1 ":" val1 "," key2 " : ["a", "b", 3], "key3": {"foo": 27, "bar": [1, 2, 3]}} ') ' ' dict ([(k, str (v)) per k, v in foo.iteritems()]) ' mi darà: ' {u'key1 ':' val1 ', u'key2': "[u'a ', u'b' , 3] ", u'key3 ':" {u'foo': 27, u'bar ': [1, 2, 3]} "' –