JSON-Datei: Sektionen (Keys) anzeigen

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
jbaben
User
Beiträge: 24
Registriert: Dienstag 12. Januar 2016, 16:05

Hallo,
ich möchte aus einer JSON-Datei die einzelnen Sektionen angezeigt bekommen.
D.h. ich möchte wissen wieviele Sektionen die entsprechende JSON-Datei enthält.
Mit diesem Code wird der Inhalt der JSON-Datei "data.json" angezeigt.

Code: Alles auswählen

# -*- coding: utf-8 -*-
import json
from pprint import pprint

print("Datei oeffnen")
with open("data.json") as data_file:    
    data = json.load(data_file)
    
print("Datei-Inhalt anzeigen")
pprint(data)
JSON-Datei

Code: Alles auswählen

{
    "zoneA": [
        {
            "zoneA1": "0"
        },
	{
	    "zoneA2": "1"
	},
	{
	    "zoneA3": "1"
	}
    ],
    "zoneB": [
        {
            "zoneB1": "0"
        },
	{
	    "zoneB2": "1"
	},
	{
	    "zoneB3": "1"
	}
    ]
}
Mit Sektionen meine ich: "zoneA" und "zoneB"

MfG
Juergen B.
Benutzeravatar
snafu
User
Beiträge: 6736
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Code: Alles auswählen

for key in data.keys():
    print(key)

# Alternativ:
print(*data.keys(), sep=', ')
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@jbaben: die Daten einer JSON-Datei sind einfach Wörterbücher (oder Liste), so dass Du die ganz normalen Methoden auf Wörterbücher verwenden kannst.
jbaben
User
Beiträge: 24
Registriert: Dienstag 12. Januar 2016, 16:05

Hallo,
vielen Dank fuer Eure Antworten, werde ich testen.

MfG

Juergen B.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1016
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Notfalls mit type(object) nachsehen um welchen Datentyp es sich bei dem Objekt handelt.
Dann weiß man auch welche Methoden zur Verfügung stehen.

Methoden folgender Objekte sollte man kennen: tuple, list, dict, set, str, int, float

Das wäre z.B. auch JSON: '[0, 1, 2, 3, 4]'
Würdest du diesen String mit dem JSON decoder parsen, käme am ende eine Liste heraus.
Die Datentypenkonvertierung von JSON <> Python ist fast 1:1.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
jbaben
User
Beiträge: 24
Registriert: Dienstag 12. Januar 2016, 16:05

Hallo,

so der Hinweis von "snafu " hat mir geholfen:

Code: Alles auswählen

# -*- coding: utf-8 -*-
import json
from pprint import pprint

print("Datei oeffnen")
with open("data.json") as data_file:   
    data = json.load(data_file)
   
print("Datei-Inhalt anzeigen")
pprint(data)

print("Sektionen (keys) anzeigen")
for key in data.keys():
    print(key)
# Alternativ:
print(*data.keys(), sep=', ')
print("Anzahl Sektionen (keys): %d " % len(data.keys()))
Ich habe aber noch eine Frage zu dem Hinweis auf "Wörterbuch" : welche Methoden kämen dafür in Frage ?

MfG

Juergen B.
Benutzeravatar
snafu
User
Beiträge: 6736
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

jbaben hat geschrieben:Ich habe aber noch eine Frage zu dem Hinweis auf "Wörterbuch" : welche Methoden kämen dafür in Frage ?
Hier werden die wichtigsten Datenstrukturen in Python auf Deutsch beschrieben:
https://py-tutorial-de.readthedocs.io/d ... tures.html

Wörterbücher (engl. Dictionary) findest du dort unter Punkt 5.5.
Antworten