2017-09-07 6 views
1

Ziel: Ich empfange die Anzahl der Clients als Eingabe und ich muss ein Wörterbuch im folgenden Format nur erstellen, da der Server im gleichen Format liest (ein Schlüssel, z. B. ' cdata 'und eine Liste von Wörterbüchern als Werte).Erstellen einer Liste von Wörterbüchern mit dynamisch hinzugefügten Werten

Beispiel: Wenn ich 4 Klienten als Eingabe vom Benutzer empfange, dann sollte das folgende erzeugt werden. (also sollte es die Werte dynamisch basierend auf Benutzereingaben generieren)

FYI: Ich versuche, mehrere Clients auf einer einzigen Maschine zu simulieren.

jsondata = json.dumps(
      {'cdata': [ 
       { 'cname': "client1", 'heart': val1, 'timC': tstamp, 'sig': random.uniform(0,10)}, 
       { 'cname': "client2", 'heart': val2, 'timC': tstamp, 'sig': random.uniform(0,10)}, 
       { 'cname': "client3", 'heart': val3, 'timC': tstamp, 'sig': random.uniform(0,10)}, 
       { 'cname': "client4", 'heart': val4, 'timC': tstamp, 'sig': random.uniform(0,10)} 
      ] 
      }, sort_keys=True, separators=(',', ':'), indent=2) 

Entschuldigung, wenn es eine dumme Frage ist.

Antwort

0

IIUC müssen Sie etwas wie folgt aus:

values = [val1, val2, val3, val4] #val variables 
tstamp = 'something' 

result = {'cdata': [{'cname': 'client{}'.format(i), 'heart': val, 'timC': tstamp, 'sig': random.uniform(0,10)} for i, val in enumerate(values, 1)]} 

Jetzt können Sie nur zu json führen Dump:

jsondata = json.dumps(result, sort_keys=True, separators=(',', ':'), indent=2) 
+0

Dank !!! Es funktionierte. – try

Verwandte Themen