Wie kodiere / dekodiere ich ein Wörterbuch in Python 3 zu / von einer externen Datei?

Ich bin relativ neu und kodiert und decodiert, in der Tat habe ich keine Erfahrung mit ihm überhaupt.

Ich habe mich gefragt, wie würde ich ein Wörterbuch in Python 3 in ein unlesbares Format dekodieren, das jemanden daran hindern würde, es außerhalb des Programms zu verändern?
Ebenso wie würde ich dann aus dieser Datei lesen und das Wörterbuch zurückkodieren?

Mein Testcode schreibt gerade nur auf und liest aus einer einfachen Textdatei.

import ast myDict = {} #Writer fileModifier = open('file.txt', 'w') fileModifier.write(str(myDict))) fileModifier.close() #Reader fileModifier = open('file.txt', 'r') myDict = ast.literal_eval(fileModifier.read()) fileModifier.close() 

  • Shutil.rmtree schlägt auf Windows mit "Zugriff verweigert"
  • Python-Anfragen, wie man Content-Typ zur Multipart- / Formular-Datenanforderung hinzufügt
  • Lesen einer Datei Zeile für Zeile in Elemente eines Arrays in Python
  • Wie lese ich in einem Charakter zu einer Zeit aus einer Datei in Python?
  • Wie bekomme ich eine Datei? Schließen Sie das Ereignis in python
  • Atom-Datei schreiben Operationen (Cross-Plattform)
  • 3 Solutions collect form web for “Wie kodiere / dekodiere ich ein Wörterbuch in Python 3 zu / von einer externen Datei?”

    Je nachdem, was Ihr Wörterbuch hält, können Sie eine Codierungsbibliothek wie Json oder Pickle verwenden (nützlich für die Speicherung meiner komplexen Python-Datenstrukturen).

    Hier ist ein Beispiel mit json, um Pickle verwenden nur ersetzen alle Instanzen von json mit pickle und Sie sollten gut zu gehen.

     import json myDict = {} #Writer fileModifier = open('file.txt', 'w'): json.dump(myDict, fileModifier) fileModifier.close() #Reader fileModifier = open('file.txt', 'r'): myDict = json.load(fileModifier) fileModifier.close() 

    Die typische Sache, die hier verwendet wird, ist entweder die json oder pickle Module (beide in der Standardbibliothek). Der Prozess heißt "Serialisierung". pickle kann fast beliebige Python-Objekte serialisieren, während json nur basische Typen / Objekte (Integers, Floats, Strings, Listen, Wörterbücher) serialisieren kann. Json ist menschlich lesbar am Ende des Tages, während pickle Dateien nicht sind.

    Eine Alternative zur Codierung / Decodierung ist, einfach eine Datei als dict , und Python hat das shelve Modul, das genau das tut. Dieses Modul verwendet eine Datei als Datenbank und stellt eine dict ähnliche Schnittstelle dar.

    Es hat einige Einschränkungen, zum Beispiel Schlüssel müssen Strings sein, und es ist offensichtlich langsamer als ein normaler dict da es E / A-Operationen durchführt.

    Python ist die beste Programmiersprache der Welt.