json aus zwei Listen erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
torsten_156
User
Beiträge: 43
Registriert: Freitag 5. April 2019, 20:10

Hallo,

ich versuche krampfhaft ein json Objekt aus zwei Listen zu erstellen. Leider klappt das alles nicht so. Hier meine Listen:

Code: Alles auswählen

value = [1, 2, 3, 4, 5]
tstamp = ["01.01.2023", "02.01.2023", "03.01.2023", "04.01.2023", "05.01.2023", ]
Aus diesen beiden Liste möchte ich jetzt ein json machen, das dann so aussehen soll:

Code: Alles auswählen

"jsonarray": [{
      "value": 1,
      "tstamp": "01.01.2023"
   	}, {
      "value": 2,
      "tstamp": "02.01.2023"
      }, {
      "value": 3,
      "tstamp": "03.01.2023"
      }, {
      "value": 4,
      "tstamp": "04.01.2023"
      }, {
      "value": 5,
      "tstamp": "05.01.2023"
   }]


Wie bekomme ich das am elegantesten hin?

Danke und Gruß
Torsten
Sirius3
User
Beiträge: 18253
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum ist die Testamplitude wie ein deutsches Datum formatiert? In Deinen vorherigen Beiträgen war das noch ein timestamp und im ISO-Format.
Woher kommen die Daten und wer verarbeitet die weiter?
Idealerweise liegen die Daten schon in einer Liste vor, und dann ist die Umwandlung per Listcomprehension doch trivial.

Code: Alles auswählen

result = [{'a': a, 'b': b} for a, b in ab_items]
Benutzeravatar
kbr
User
Beiträge: 1504
Registriert: Mittwoch 15. Oktober 2008, 09:27

Und wenn zwei Listen vorliegen ist , ist es auch nicht schwerer:

Code: Alles auswählen

s = json.dumps([{"value": v, "tstamp": t} for v, t in zip(value, tstamp)])
imonbln
User
Beiträge: 190
Registriert: Freitag 3. Dezember 2021, 17:07

Kommt darauf, was du als elegant bezeichnet, aber wenn du sicher bist das value und tstamp immer gleich viele Elemente haben, geht das hier.

Code: Alles auswählen

import json

value = [1, 2, 3, 4, 5]
tstamp = ["01.01.2023", "02.01.2023", "03.01.2023", "04.01.2023", "05.01.2023", ]
jsonarray = [ {"value": v, "tstamp":t} for v,t in zip(value, tstamp)]

print(json.dumps(jsonarray, indent=4))
Benutzeravatar
DeaD_EyE
User
Beiträge: 1224
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Wer kein ISO8601 verwendet, den beißen irgendwann die Hunde.
Spätestens, wenn man z.B. Dateien alphanumerisch (nach Datum und Zeit) sortieren möchte und alles Durcheinander ist.

Andererseits kann man die ISO8601 Strings auch wieder in DateTime-Objekte umwandeln.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten