import json from collections import OrderedDict f_out = open("patch.json","w") nr=0 dmx=1 def add(jdata,att): global nr,dmx,name,fix,sub print("======", "{}_{}{:02}".format( name,fix,sub) ) #for i in jdata: # print(i ) if "ATTRIBUT" in jdata: for a in att: if a == "": print("---",nr+dmx-1,nr,"") nr+=1 continue rdata = '{"NR": 1, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}' jattr = json.loads(rdata,object_pairs_hook=OrderedDict) jattr["NR"] = nr if a in ["DIM","RED","GREEN","BLUE","PAN","TILT","ZOOM","IRIS"]: jattr["MODE"] = "F" jdata["ATTRIBUT"][a] = jattr print("add",nr+dmx-1,nr,a) nr+=1 print() fix = 501 sub =1 name="SPX_" dmx=1 univ=1 for i in range(4): # fixtures print("====================================") rdata='{"DMX": 1, "UNIVERS": 1, "NAME": "SPX7_01", "TYPE": "MOVER", "VENDOR": "JB", "ATTRIBUT":{}}' jdata = json.loads(rdata,object_pairs_hook=OrderedDict) jdata["NAME"] = "{}_{}{:02}".format( name,fix,sub) nr=1 jdata["UNIVERS"] = univ jdata["DMX"] = dmx att = [] att.append("PAN") att.append("PAN-FINE") att.append("TITL") att.append("TILT-FINE") att.append("") att.append("SHUTTER") att.append("DIM") att.append("ZOOM") att.append("GOBO") att.append("") att.append("GOBO2") att.append("G-ROT") att.append("") att.append("PRISMA") att.append("P-ROT") att.append("") att.append("") att.append("") att.append("") att.append("") add(jdata,att) fnr="{}{:02}".format(fix,sub) f_out.write("{}\t{}\t{}\n".format(fnr,fnr,json.dumps(jdata) ) ) rdata='{"DMX": 1, "UNIVERS": 1, "NAME": "SPX7_01", "TYPE": "MOVER", "VENDOR": "JB", "ATTRIBUT":{}}' jdata = json.loads(rdata,object_pairs_hook=OrderedDict) for i in range(3): sub+=1 jdata["NAME"] = "{}_{}{:02}".format( name,fix,sub) dmx+=nr-1 univ=1 nr=1 jdata["UNIVERS"] = univ jdata["DMX"] = dmx att = [] att.append("RED") att.append("GREEN") att.append("BLUE") att.append("WHITE") add(jdata,att) fnr="{}{:02}".format(fix,sub) f_out.write("{}\t{}\t{}\n".format(fnr,fnr,json.dumps(jdata) ) ) f_out.flush() fix += 1 sub=1 dmx+=nr-1