Der Autor hat meine Anpassungen um ein paar Änderungen erweitert und in sein Repo eingepflegt. Der QtWaitingSpinenr ist jetzt auch 3.10 kompatibel 🤓
1b268980-92ca-42a4-89a0-a6e4b7ab9378-grafik.png
Heute endlich mal wieder ein wenig mit Python beschäftigt. Wenn man ein Tool bauen will, muss man fast immer irgendwelche Daten dauerhaft speichern. Das wollte ich mal ausprobieren. Fangen wir an...
Die JavaScript Object Notation (JSON [ˈdʒeɪsən]) ist ein kompaktes Datenformat in einer einfach lesbaren Textform und dient dem Zweck des Datenaustausches zwischen Anwendungen. JSON ist von der Programmiersprache unabhängig. Parser und Generatoren existieren in allen verbreiteten Sprachen.
Um JSON zu benutzen, brauchen wir folgenden import
import json
Die Datei aus dem Bild erzeugen.
backups = {}
backups['1'] = {'id': 1, 'repository': "/home/frank/restic_test/", 'source': "/home/frank/Bilder", 'password': "12345678"}
backups['2'] = {'id': 2, 'repository': "/home/frank/restic_test2/", 'source': "/home/frank/Bilder", 'password': "1234"}
with open('mydata.json', 'w') as f:
json.dump(backups, f)
with open('mydata.json') as f:
backups = json.load(f)
for i in backups.values():
print(i)
print(backups['1']['repository'])
print(backups['2']['repository'])
print(len(backups))
backups.pop('1')
Damit habe ich dann alles zusammen um meine Daten als JSON auf der Platte abzulegen und damit zu arbeiten.
Noch was vergessen Wenn wir was ändern wollen, sind die Schritte wie folgt.
with open('mydata.json') as f:
backups = json.load(f)
backups['2']['repository'] = "/home/frank/restic_test3/"
with open('mydata.json', 'w') as f:
json.dump(backups, f)
z.B. so
print(backups['2']['repository'])
Die Backups sollen Namen haben, also habe ich das erweitert. Jetzt sollen diese als Liste rechts angezeigt werden. Das mache ich wie folgt.
for key in backups:
print(backups[key]['name'], key)
liste = backups[key]['name'] + " ID: " + key
self.listWidget.addItem(liste)
Mittels des Keys kann ich auf den Namen zugreifen und die Liste damit füllen. Aktuell habe ich noch den Key hinten angefügt, weil ich noch keine Idee habe, wie ich die Backups anders verarbeiten soll. Aber, Stück für Stück. Der Backup-Name wird nach Auswahl in der Statusbar angezeigt. So weit klappt das so wie ich mir das vorstelle. Für heute ist Feierabend