Ich bin neu in Python und spiele mit JSON-Daten. Ich möchte ein JSON-Objekt dynamisch erstellen, indem ich einem vorhandenen JSON-Objekt einen Schlüsselwert hinzufüge.
Ich habe folgendes versucht, aber ich bekomme TypeError: 'str' object does not support item assignment
:
import json
json_data = json.dumps({})
json_data["key"] = "value"
print 'JSON: ', json_data
json_data['key'] = 'value'
, was nicht funktioniert, dajson_data
es sich nicht um ein Python-Wörterbuch handelt.pip list
gibt Ihnen die gleichen Informationen und kann JSON ausgeben:pip list --format=json
Sie können das Python-Wörterbuch erstellen und es in einer Zeile in JSON serialisieren, und es ist nicht einmal hässlich.
quelle
Es gibt bereits eine Lösung, mit der Sie ein Wörterbuch (oder ein verschachteltes Wörterbuch für komplexere Daten) erstellen können. Wenn Sie jedoch ein Objekt erstellen möchten, versuchen Sie es vielleicht mit 'ObjDict'. Dies gibt viel mehr Kontrolle über den zu erstellenden JSON, z. B. die Beibehaltung der Reihenfolge, und ermöglicht das Erstellen als Objekt, das möglicherweise eine bevorzugte Darstellung Ihres Konzepts darstellt.
pip install objdict zuerst.
quelle
json.dumps
dhjson.dumps(response, sort_keys=True, indent=4)
dann bleiben Sie bei der alphabetischen Reihenfolge und nicht bei Ihrer bevorzugten Reihenfolge, Gruppierung und DarstellungSie könnten
EasyDict
Bibliothek ( doc ) verwenden :[ Installation ]:
pip install easydict
quelle
Alle vorherigen Antworten sind korrekt. Hier ist eine weitere und einfache Möglichkeit, dies zu tun. Erstellen Sie beispielsweise eine Dict-Datenstruktur, um ein Objekt zu serialisieren und zu deserialisieren
( Hinweis Keine ist in Python Null und ich verwende dies absichtlich, um zu demonstrieren, wie Sie Null speichern und in JSON Null konvertieren können.)
quelle