mehr pythonic way to format der JSON-string aus einer Liste von Tupeln
Zurzeit mache ich das:
def getJSONString(lst):
join = ""
rs = "{"
for i in lst:
rs += join + '"' + str(i[0]) + '":"' + str(i[1]) + '"'
join = ","
return rs + "}"
ich nenne Sie gerne:
rs = getJSONString([("name", "value"), ("name2", "value2")])
Braucht er nicht zu verschachtelt sein (es ist nur je eine einfache Liste mit name-Wert-Paare). Aber ich bin offen für den Aufruf der Funktion unterschiedlich. Es scheint alles ein bisschen cludgy, gibt es eine elegantere Möglichkeit? Dies muss für die Ausführung unter 2.x.
Beachten Sie, dass dies nicht ein Duplikat von: Python - konvertieren Liste Tupel string (es sei denn, die Antwort kann geändert werden, um zu erstellen Sie eine JSON-string als Ausgabe).
edit: wäre es besser, übergeben Sie die name-Wert-Paare als ein Wörterbuch?
InformationsquelleAutor Charlie Skilbeck | 2012-12-07
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen viel besseren Weg zur Erzeugung von JSON-strings: die
json
- Modul.Dieser nutzt die Tatsache, dass
dict()
können eine Folge von Schlüssel-Wert-Paare (zwei-Wert-Tupel) und drehen Sie diese in ein mapping, welches diejson
Modul direkt übersetzt, um ein JSON-Objekt-Struktur.Demonstration:
datetime
Objekte haben keine Standard Serialisierung nach JSON. Sie müssen diese wiederum in strings manuell.'{{{}}}'.format(','.join(['{}:{}'.format(json.dumps(k), json.dumps(v)) for k, v in lst]))
mindestens format die Schlüssel und Werte mit derjson
- Modul (oderf"{{{','.join([f'{json.dumps(k)}:{json.dumps(v)}' for k, v in lst])}}}"
bei der Verwendung von Python 3.6 oder höher). Berücksichtigen, dass wer auch immer verbraucht diese Ausgabe muß auch ausdrücklich die Unterstützung der doppelte Schlüssel.{item[0]:item[1] for item in lst} == dict(lst)
Können Sie konvertieren, die in einer complet json-Inhalt
Ausgabe:
{"Bewertet 4.0": "BEWERTET\n Der Ort ist schön und komfortabel. Lebensmittel weisen alle jalea outlets, pflegen einen guten standard. Die Soja-chaap war ein herausragendes Gericht. Eindeutig eines der Markenzeichen Gericht als pro mich und ein muss versuchen.\n\nDie einzige Sorge ist der Parkplatz. Ist es sehr überfüllt und nur 5cars. Die Tiefgarage ist sehr steil und macht es umständlich", "Nennleistung 2.0": "BEWERTET\n ein restaurant in der Nähe Banashankari BDA. Mich zusammen mit einigen der meine office-Freunde besucht zu haben buffet, aber leider sind Sie nur Gemüse-buffet. Auf erkundigen Sie sagte, dieser Ort ist meist besucht von Vegetarier. Jedenfalls bestellten wir ala carte, die dauerte ewig zu kommen. Essen war ok. Definitiv nicht zu besuchen mehr.", "Nenn 5.0": "BEWERTET\n Overdelighted durch den service und die Verpflegung an dieser Stelle. Ein royal und ethnische Atmosphäre baut sich eine starke Essenz des seins in Indien und auch die Qualität und der Geschmack des Essen ist wirklich authentisch. Ich würde absolut empfehlen, diesen Ort zu besuchen einmal."}