JSON Datei auslesen

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
Jasy
User
Beiträge: 3
Registriert: Freitag 15. Juli 2022, 10:11

Hallo zusammen, ich habe ein Problem und bräuchte Hilfe. Ich lade mir über eine API eine JSON Datei runter das klappt auch ohne Probleme. Nun würde ich gerne die JSON Datei lesen und nur bestimmte Werte auslesen und die in einer Linie wiedergeben. Plotten kann ich mit Fake Daten aber auslesen und wiedergeben wenn ich die JSON Datei angebe funktioniert nicht.

Die JSON Datei sieht wie folgt aus:

Code: Alles auswählen

"code":"200000",
"data":[
    {
        "price":"1001",
        "sequence":"1636607335665",
        "side":"sell",
        "size":"0.00000544",
        "time":1657828843154264094
    },
    {
        "price":"5538.9",
        "sequence":"1636607335668",
        "side":"buy",
        "size":"0.00000098",
        "time":1657828843399526634
    },
    {
        "price":"1001",
        "sequence":"1636607335707",
        "side":"sell",
        "size":"0.00000098",
        "time":1657828850316727168
    },
Nun möchte ich gerne das der Price angezeigt wird in einem Chart. Der Sell Price soll eine rote Linie haben und der Buy Price eine Blau Linie. Wie kann ich nun die JSON Datei lesen?

Mein Code der funktioniert:

Code: Alles auswählen

# importing pandas library
import pandas as pd
# importing matplotlib library
import matplotlib.pyplot as plt

# creating dataframe
df = pd.DataFrame({
    'X': [1, 2, 3, 4, 5],
    'Y': [2, 4, 6, 10, 15]
})

# plotting a line graph
print("Line graph: ")
plt.plot(df["X"], df["Y"])
plt.show()
Benutzeravatar
noisefloor
User
Beiträge: 4196
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

die Datei ist kein valides JSON. Da fehlen die äußeren eckigen oder geschweiften Klammer...

Das gute bei JSON ist, dass die Struktur sich fast 1:1 auf Python übertragen lässt. Ein JSON-Objekt wird zu einem Python Dict und ein JSON Array zu einer Liste. Wo du dann mit den bekannten Wegen drauf zugreifst.

Zum Einlesen von JSON gibt es es JSON-Modul in der Python Standardbibliothek. Und Pandas kann auch direkt JSON lesen, falls du die Daten direkt in einen Pandas Dataframe einlesen willst.

Gruß, noisefloor
Jasy
User
Beiträge: 3
Registriert: Freitag 15. Juli 2022, 10:11

Also ich hab es jetzt geschafft das die json Datei gelesen wird, aber wenn ich "price" und "side" filtern will wird mir nichts angezeigt.

Code: Alles auswählen

import pandas as pd

df = pd.read_json("events.json", orient='index')
dc = pd.DataFrame(df, columns=['side', 'price'])
print(dc)
Ausgabe:

Code: Alles auswählen

      side  price
code   NaN    NaN
data   NaN    NaN

Process finished with exit code 0
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Hast Du Dir mal angeschaut, welche Daten in `df` stehen?
Die Daten sind nicht in einer Struktur, die man mit `read_json` lesen kann.
Jasy
User
Beiträge: 3
Registriert: Freitag 15. Juli 2022, 10:11

Im df stehen alle Daten, über Print sehe ich ja alle Daten. Nur die einzelnen Werte auslesen klappt nicht.
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Welche Spalten und Zeilen hat das Dataframe und wie viele? Und wie viele Datensätze erwartest Du eigentlich?
Antworten