Json Datei in Dictionary umwandeln. Bräuchte dringend Hilfe.

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
paupau90
User
Beiträge: 26
Registriert: Sonntag 4. Mai 2014, 16:32

Hallo an alle :-),
ich habe gelesen, dass Python Json-Files untersützt und wollte mal versuchen eins zu imprtieren. Ich habe ein Json-File, "backrezepte.json", das z.B. so aussieht:

{
"Schokoladenkuchen": {
"ingredients": {
"Zutat": "Menge",
"Schokolade": "1 Tafel",
"Mehl": "250g"
},
"instructions": "Zubereitung",
"summary": "Kurzbeschreibung"
}
...
}

Ich würde es gerne in ein Dictionary umwandeln.
Habe schon im Internet gesucht aber nicht wirklich was gefunden.
Kann mir jemand helfen?
BlackJack

@paupau90: Man findet bei einer Suche im Internet nicht das `json`-Modul in der Python-Dokumentation?
paupau90
User
Beiträge: 26
Registriert: Sonntag 4. Mai 2014, 16:32

Ja da bin ich schon drauf gestoßen, aber leider weiß ich wie ich das jetzt auf mein Beispiel anwenen soll.
Könnte mir jemand eine Möglichkeit oder Beispiel schreiben? Ich besitze ja auch zwei verschiedene Python Bücher in denen leider
nichts darüber steht. Bitte teilt euer Wissen mit mir :-)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@paupau
Dann scroll' und lies' doch in der json-Dokumentation mal bis zu der Stelle... :wink: Dort steht, was Du suchst...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@paupau90: Die Dokumentation des `json`-Moduls fängt mit *Beispielen* an wie man die Funktionen daraus verwendet. Und Du fragst nach einem Beispiel. Was soll man denn da noch schreiben? :shock:
paupau90
User
Beiträge: 26
Registriert: Sonntag 4. Mai 2014, 16:32

Ich glaube ich bin heute blind :-D. Ich habe bis jetzt:

>>> import json
>>> f=open("backrezepte.json")
>>> s=f.read().decode('utf_8')
>>> data=json.loads(s)

Nur dann habe ich eine Python-Datenstruktur.
Kann man das direkt in ein Dictionary also in ein assoziatives Array schreiben.
Falls das auch dort steht sehe ich es grad nur nicht, sorry :-D.
BlackJack

@paupau90: Warum liest Du die Datei selber ein? Und ja, da bekommst Du dann eine Python-Datenstruktur. Was denn auch sonst? Man will das ja laden um den Inhalt verwenden zu können und in Python sind das öffensichtlich Python-Datentypen mit denen man direkt arbeiten kann.
paupau90
User
Beiträge: 26
Registriert: Sonntag 4. Mai 2014, 16:32

Ich hab jetzt schon viel ausprobiert aber komme nicht drauf.
Also:

Code: Alles auswählen

>>> import json
>>> json_file=open("backrezepte.json")
>>> json_str=json_file.read()
>>> json_data=json.loads(json_str)
Das ist ja jetzt noch kein dict. Wie schreibe ich das am besten in ein dict?
Ich sehe das irgendwie auf der Python Seite nicht :(
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Da kommt genau das raus was auch in "backrezepte.json" drin steckt. Wenn es kein Dictionary ist, dann kommt auch keins raus. Wie sieht denn die Datei aus und was erhältst du als Ergebnis?
Das Leben ist wie ein Tennisball.
paupau90
User
Beiträge: 26
Registriert: Sonntag 4. Mai 2014, 16:32

EyDu hat geschrieben:Da kommt genau das raus was auch in "backrezepte.json" drin steckt. Wenn es kein Dictionary ist, dann kommt auch keins raus. Wie sieht denn die Datei aus und was erhältst du als Ergebnis?
Die Datei sieht so aus:

Code: Alles auswählen

{
    "Schokoladenkuchen": {
        "ingredients": {
            "Zutat": "Menge",
            "Schokolade": "1 Tafel",
            "Mehl": "250g"
        },
        "instructions": "Zubereitung",
        "summary": "Kurzbeschreibung"
    }
    ...
}
Das kommt bis jetzt raus:
Es steht jetzt u'...' in den Daten.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

paupau90 hat geschrieben:Das kommt bis jetzt raus:
Es steht jetzt u'...' in den Daten.
Ähm, was? Etwas genauer und ausführlicher musst du schon werden. Was liefert denn ein

Code: Alles auswählen

print json_data
Das Leben ist wie ein Tennisball.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

paupau90 hat geschrieben:Es steht jetzt u'...' in den Daten.
Ich erhalte beim Einlesen mit json.load()völlig korrekt ein Dictionary (wenn ich die 3 Punkte in der Datei weglasse).

Bei Stackoverflow kann man das Problem übrigens mit der mangelhaften Informationslage so auch nicht nachvollziehen ...
BlackJack

@paupau90: JSON ist Unicode, dementsprechend werden die Zeichenketten-Werte auch in `unicode`-Objekte umgewandelt.
Antworten