Kivy Json Storage, geänderte Value schreiben
Verfasst: Freitag 2. Februar 2018, 08:37
Hallo Schlangenmenschen
Ich bin immer noch in der Einarbeitung in Python und Kivy. Dabei hänge ich gerade im Grundverständnis etwas fest. Ggf könnt ihr mir helfen.
Ich nutze den Kivy Json Storage um eine json Datei zu bearbeiten.
Dabei habe ich folgendes Problem:
Das Test jsonfile sieht wie folgt aus:
Szenario 1
Mir erklärt sich nicht ganz wieso ein stage.put() nur Self, Key, und kein Value zugelassen wird. Im Szenario 2 wiederum schon.
Denn nach langen Testen habe ich folgendes Szenario zusammengebastelt. Das Funktioniert zwar aber ich verstehe nicht wieso Szenario 1 nicht möglich ist.
Herraus kommt dann dieses Jsonfile
Ich habe mir mit einen neuem Key "fileversion" beholfen. Dann ändert er zwar das value von dem "Key" (welcher vorher nur im stage.store_put gespeichert war) aber das ist nicht ganz Sinn und Zweck meines Scriptes.
Hab ihr eine Idee wo mein Fehler liegt? Wie kann ich den Key direkt mit stage.put beschreiben?
Danke
Tholo
Ich bin immer noch in der Einarbeitung in Python und Kivy. Dabei hänge ich gerade im Grundverständnis etwas fest. Ggf könnt ihr mir helfen.
Ich nutze den Kivy Json Storage um eine json Datei zu bearbeiten.
Dabei habe ich folgendes Problem:
Das Test jsonfile sieht wie folgt aus:
Code: Alles auswählen
{
"publickey": "",
"privatekey": "",
"key": "1BLL5NFY-KCSUOHBN",
"secret": "fa3b7826ad",
"b-key": "c7f25364559b497092e5e00b1d119169",
"b-secret": "a7c51baa066242c4be9fe73666fe2e8c"
}
Code: Alles auswählen
from kivy.storage.jsonstore import JsonStore
jsonfile = '..\\config\\config2.json'
stage = JsonStore(jsonfile, indent=4, sort_keys=False)
a= stage.keys()
print(a) #>>> dict_keys(['publickey', 'privatekey', 'key', 'secret', 'b-key', 'b-secret'])
print(stage.get('key')) #>>> 1BLL5NFY-KCSUOHBN
b = stage.put("key", "asdasd") #>>> TypeError: put() takes 2 positional arguments but 3 were given
print(stage.get("key"))
Denn nach langen Testen habe ich folgendes Szenario zusammengebastelt. Das Funktioniert zwar aber ich verstehe nicht wieso Szenario 1 nicht möglich ist.
Code: Alles auswählen
from kivy.storage.jsonstore import JsonStore
jsonfile = '..\\config\\config2.json'
stage = JsonStore(jsonfile, indent=4, sort_keys=False)
a= stage.keys()
print(a) #>>> dict_keys(['publickey', 'privatekey', 'key', 'secret', 'b-key', 'b-secret'])
print(stage.get('key')) #>>> 1BLL5NFY-KCSUOHBN
stage.store_put("key", "asdasd") # Eigentlich gleiche Funktion wie stage.put() nur kommt kein Argumenten Fehler
print(stage.get("key")) #>>> asdasd # Value geändert aber nur im Storage datei nicht beschrieben
stage.put("fileversion", version=0.1) #>>> json wird mit geänderte Daten geschrieben
Code: Alles auswählen
{
"publickey": "",
"privatekey": "",
"key": "asdasd",
"secret": "fa3b7826ad",
"b-key": "c7f25364559b497092e5e00b1d119169",
"b-secret": "a7c51baa066242c4be9fe73666fe2e8c",
"fileversion": {
"lastwritetime": 0.1
}
}
Hab ihr eine Idee wo mein Fehler liegt? Wie kann ich den Key direkt mit stage.put beschreiben?
Danke
Tholo