Python JSON Objekt in der Form[]

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
RudelGurken
User
Beiträge: 29
Registriert: Freitag 24. Mai 2013, 09:51

Hallo Forum,
ich benötige ein leeres JSON Objekt in der Form [], damit ich Stückweise folgende Struktur aufbauen kann (Beispiel JSON)

Code: Alles auswählen

[{
	"id": "581f484957d3f",
	"title": "1",
	"description": "1",
	"sensoren": [{
		"id": "581f486a559fd",
		"title": "1a",
		"number": "1",
		"temp": "",
		"humidity": "",
		"time": ""
	}],
	"geraete": [{
		"id": "581f487fde7c4",
		"title": "jo",
		"type": "Heizmatte",
		"device": "234",
		"number": "2",
		"status": false,
		"schaltung": [{
			"id": "581f491c574d2",
			"on": "asdasdas",
			"off": "asdasdasddasdasdasdasd"
		}, {
			"id": "581f492ef1004",
			"on": "123",
			"off": "123"
		}]
	}]
}, {
	"id": "581f486261a78",
	"title": "2",
	"description": "2",
	"sensoren": [{
		"id": "581f48718878c",
		"title": "2a",
		"number": "2",
		"temp": "",
		"humidity": "",
		"time": ""
	}],
	"geraete": [{
		"id": "581f48890ef20",
		"title": "ghfhfghgf",
		"type": "Heizmatte",
		"device": "dasd",
		"number": "1",
		"status": false,
		"schaltung": [{
			"id": "581f4936a1968",
			"on": "asdas",
			"off": "dsasdasd"
		}]
	}]
}]
Der JSON-Code wird über ZeroMQ an meinen Python-Code übermittelt, muss aber erstmalig leer erzeugt werden. Für Hilfe und eure Gedanken bin ich dankbar.

Hier mal ein prototyp:

Code: Alles auswählen

import json
import zmq

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://127.0.0.1:5000")

jsonV = "[]"
#json = json.loads("[]")
while True:
        msg = socket.recv()
        print msg
        message = msg.split('/')
        if message[0] == "t":
                print message
                print json.dumps(jsonV);
                socket.send("ok")
        elif message[0] == "i":
                try:
                        jsonV = message[1]
                        print 'bestehende JSON-Konfiguration ueberschrieben:'
                        #print json.dumps(jsonV)
                        print jsonV
                except IndexError:
                        print 'bestehende JSON-Konfiguration ausgegeben:'
                        print jsonV
                        #print json .dumps(jsonV)
                #socket.send(json.dumps(jsonV))
                socket.send(jsonV)
        else:
                socket.send('error')
einen schönen Sonntag wünschend
Zuletzt geändert von Anonymous am Sonntag 13. November 2016, 13:45, insgesamt 1-mal geändert.
Grund: Quelltext in Codebox-Tags gesetzt.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Python hat keine Datentypen für JSON Objekte. JSON korrespondiert zu dicts, lists usw.
BlackJack

@RudelGurken: Warum bestehen die Nachrichten eigentlich nicht aus *einem* Datenformat? Warum diese Kommandos die mit '/' von JSON-Daten getrennt werden, wenn man das doch auch komplett in JSON ausdrücken könnte. Und damit ein robusteres und erweiterbareres Nachrichtenformat hätte. Denn so wie es jetzt programmiert ist, darf innerhalb des JSON kein '/' vorkommen. Um solche Spezialfälle müsste man sich nicht kümmern, wenn man ein einheitliches Format verwenden würde.
Antworten