Dictionary speichern - wie würdet ihr das machen?

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
Rotmilan
User
Beiträge: 32
Registriert: Mittwoch 30. Dezember 2020, 21:59
Wohnort: Nordbayern

Hallo,

ich möchte mit einem Programm Dictionaries (Key und Wert sind in der Regel Strings, evtl. als Wert auch mal eine Liste mit Strings) in Dateien speichern, und habe da jetzt bei der suche im Netz (1) folgende Möglichkeiten gefunden:
  • dump() Funktion des pickle Moduls von Python
  • save() Funktion der NumPy Bibliothek
  • dump() Funktion des Python json Moduls.
Was würdet ihr nehmen, und warum? ich hatte mich ja schon gedanklich Richtung Pickle orientiert, aber da habe ich hier im Forum dann was von Nachteilen gelesen (2), die aber nicht genauer aufgeführt wurden...

Schönen Tag euch allen!
Rotmilan


Quellen:

(1)
https://www.delftstack.com/de/howto/pyt ... ictionary/

(2)
viewtopic.php?f=1&t=50194&p=376631&hili ... rn#p376631
Beitrag vom Donnerstag 12. November 2020, 19:58 von __blackjack__
Benutzeravatar
__blackjack__
User
Beiträge: 14057
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Rotmilan: Pickle ist Python-spezifisch, bei `numpy` bin ich überrascht dass das überhaupt geht, dafür ist diese Funktion ja eigentlich nicht gedacht, und JSON ist ein sprachübergreifendes Standardformat. Also würde ich letzteres nehmen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Pickle ist nicht nur python spezifisch, es ist vor allem auch gefährlich (kann zu ungewollter Code Ausführung genutzt werden), kann unabsichtlich eine Verknüpfung von Dump und spezifischem Code-Versions-Stand erzeugen, und auch ggf Probleme mit verschiedenen Interpreter-Versionen machen.
Rotmilan
User
Beiträge: 32
Registriert: Mittwoch 30. Dezember 2020, 21:59
Wohnort: Nordbayern

Ok, wenn ich jetzt schreiben würde alles klar, dann wäre das wohl ein bisschen übertrieben. :D Aber für meine Fragestellung reicht es allemal. Vielen lieben Dank. 8)
Antworten