2011-10-19 24 views
8

Dalle mie osservazioni nel complesso JSON è più veloce a Parse rispetto a XML. Ho trovato due buone domande su questo. Uno è richiesto per PHP e altro è richiesto per JavaScript. Voglio sapere di Python, come Python è efficiente con loro? e che è più efficiente da analizzare. Aiuta anche a scegliere il miglior parser Python per XML (ad es. Xmlparser library, lxml o?) E JSON (simplejson, jsonlib o?).Python - Qual è più veloce per analizzare Json o XML?

+3

Il tempo di analisi non è in genere un grosso problema, con entrambi i formati. Leggibilità umana, dimensione totale dei dati (numero totale di byte: JSON è in genere più piccolo), quantità di informazioni memorizzate (probabilmente XML si autodefinisce meglio) e facilità d'uso (l'uno o l'altro potrebbe essere più facile da gestire in codice) tendono tutti a superare il tempo di parsing. – Thanatos

+1

Questo blog dice che è JSON http://codersbuffet.blogspot.com/2010/03/json-vs-xml-and-python-parsing.html –

+0

@Thanatos e per quanto riguarda la scelta del parser? Fondamentalmente sto lavorando su una API che fornisce sia la risposta xml che json. Sto pensando a lxml per l'xml prsing e per l'analisi json usando simplejson sarebbe meglio? I dati sono nidificati complessi. –

risposta

8

A mio parere, non ha senso confrontare i tempi di analisi XML e JSON. La scelta di un formato rispetto all'altro dipende dal tuo caso d'uso.

Se si desidera archiviare solo tipi primitivi supportati da JSON in un formato semplice e leggibile, JSON è la soluzione giusta. Se hai bisogno di tutta la potenza e la complessità di un linguaggio di markup, usa XML. Probabilmente non vuoi inventare un formato di documento basato su JSON.

Il collo di bottiglia con l'analisi di JSON e XML di solito non è l'analisi in sé, ma l'interpretazione/rappresentazione dei dati. Un parser XML basato sugli eventi di solito è molto veloce, ma non è la costruzione di un complesso albero DOM di migliaia di piccoli oggetti. Se è necessario analizzare XML in strutture di dati nativi nidificati come elenchi e dizionari, la parte lenta sarà l'interpretazione dei risultati di analisi, non l'analisi della stringa effettiva. Poiché JSON analizza direttamente i tipi primitivi piuttosto che un albero di oggetti complesso, sarà probabilmente più veloce.

Problemi correlati