Heute dann die nächste Herausforderung. Mein JSON soll so aussehen, damit ich das entsprechend erweitern kann.
Stocks {0: {'stockname': 'Deutsche Telekom Aktie', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 100}, 1: {'stockname': 'Henkel', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 50}}
Die Daten sollen wie oben schon ausprobiert, in einer Redis Datenbank liegen. So weit auch kein großes Problem. ABER, der Zugriff auf diese Daten war dann meine nächste Hürde 🙂
Ok, ich habe also mehrere Einträge im JSON File bzw. in der Datenbank. Wie komme ich da nun wieder dran. Ein paar ☕ später dann die Lösung.
Wie komme ich an den einzelnen Eintrag, also über den Index??
r1.json().get('stocks', 1)
Gibt als Ergebnis
{'stockname': 'Henkel', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 50}
Ok, das passt schon mal. Somit kann man dann gewohnt auf die einzelnen Elemente zugreifen.
print("TESTING", testing['stockname'])
Ausgabe
TESTING Henkel
Ok, Teil 1 erledigt. Jetzt habe ich ja irgendwann mehrere Elemente in der Liste und brauch dann den letzten Index , um damit was machen zu können. Also, z.B. durch die Daten zu loopen.
objkeys = r1.json().objkeys('stocks')
print("Objkeys", objkeys)
Ausgabe
Objkeys ['0', '1']
Ok, kommt eine Liste des Index zurück. Damit kann man arbeiten 😉
Ich hatte dann zum Testen mittels einer while Schleife die Daten geladen, aber jetzt beim Tippen klingelt es und wir machen das schön mit enumerate 😉
@staticmethod
def load():
data = {}
for count, value in enumerate(objkeys):
testing = r1.json().get('stocks', count)
data[count] = {
"stockname": testing['stockname'],
"wkn1": testing['wkn1'],
"wkn2": testing['wkn2'],
"quantity": testing['quantity']}
return data
Somit habe ich die Daten aus der Redis Datenbank in einem Objekt und kann damit arbeiten.