Seite 1 von 1

json aus zwei Listen erstellen

Verfasst: Freitag 28. April 2023, 14:33
von torsten_156
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

Re: json aus zwei Listen erstellen

Verfasst: Freitag 28. April 2023, 14:47
von Sirius3
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]

Re: json aus zwei Listen erstellen

Verfasst: Freitag 28. April 2023, 14:52
von kbr
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)])

Re: json aus zwei Listen erstellen

Verfasst: Freitag 28. April 2023, 14:52
von imonbln
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))

Re: json aus zwei Listen erstellen

Verfasst: Samstag 29. April 2023, 12:07
von DeaD_EyE
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.