Le migliori pratiche a parte, c'è un motivo valido non per fare questo?Esecuzione di JSON tramite eval() di Python?
Sto scrivendo un hook post-commit da utilizzare con un progetto Google Code, che fornisce dati di commit tramite un oggetto JSON. GC fornisce un token di autenticazione HMAC insieme alla richiesta (al di fuori dei dati JSON), quindi, convalidando quel token, acquisisco un'alta confidenza sul fatto che i dati JSON siano sia benigni (dato che c'è poco da sfidare Google) e validi.
Le mie (brevi) indagini suggeriscono che JSON sembra essere Python completamente valido, con l'eccezione della sequenza di escape "\/"
- che GC non sembra generare.
Così, come sto lavorando con Python 2.4 (vale a dire nessun modulo json
), eval()
sta cercando davvero allettante.
Edit: Per la cronaca, io sono molto non chiedendo se questa è una buona idea. Sono piuttosto consapevole che non lo è, e dubito fortemente che userò mai questa tecnica per qualsiasi progetto futuro, anche se finisco per usarlo per questo. Volevo solo essere sicuro di sapere che tipo di problemi avrei incontrato se lo facessi. :-)
+1 per "malfunzionamento" qualche oscuro caso limite ". Anche tu fai un buon punto su Unicode. Sono abbastanza sicuro che non sia rilevante per il mio particolare caso d'uso, ma è qualcosa che non avevo considerato prima. –
Interessante; Avrei giurato di aver provato \ uXXXX codici di escape e di averli fatti funzionare. Provale ora, falliscono proprio come tu mostri qui. Devo essere stato allucinato. ^.^ –
anche se usi gli speedups C, allora simplejson può restituire un mix di string e unicode, che sembra non avere interesse nel correggere - http://code.google.com/p/simplejson/issues/detail? id = 40 –