Python: Ändere den Listentyp für die JSON-Dekodierung

8

in Python 2.7+ Ich kann das object_pairs_hook im eingebauten JSON-Modul verwenden, um den Typ der dekodierten Objekte zu ändern. Gibt es sowieso dasselbe für Listen?

Eine Option besteht darin, die Objekte, die ich als Argumente für den Hook erhalte, durchzugehen und sie durch meinen eigenen Listentyp zu ersetzen, aber gibt es einen anderen, klügeren Weg?

    
user408952 04.06.2012, 17:09
quelle

2 Antworten

6

Um etwas ähnliches mit Listen zu tun, müssen Sie den JSONDecoder unterklassifizieren. Unten ist ein einfaches Beispiel, das wie object_pairs_hook funktioniert. Dies verwendet die reine Python-Implementierung des String-Scans anstelle der C-Implementierung.

%Vor%     
Jesse Harris 04.06.2012, 22:12
quelle
1

Nach dem Quellcode ist es nicht möglich: Die C-Level-Funktion instanziiert den eingebauten list -Typ explizit, ohne irgendwelche Callbacks / Hooks zu verwenden. Das gleiche im Kofferraum.

    
doublep 04.06.2012 21:05
quelle

Tags und Links