fork download
  1. text = "[{'wartosc': '3.59', 'aktualizacja': '1519933403', 'nazwa': 'artekroom', 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1, 'jakosc_sygnalu': None, 'czujnik': 'bat', 'jednostka': 'V', 'minimum': 0.0, 'maksimum': 5.0}, {'wartosc': '1020', 'aktualizacja': '1519584193', 'nazwa': 'artekroom', 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1, 'jakosc_sygnalu': None, 'czujnik': 'press', 'jednostka': 'hPa', 'minimum': 0.0, 'maksimum': 1600.0}, {'wartosc': '21.2', 'aktualizacja': '1519576134', 'nazwa': 'artekroom', 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1, 'jakosc_sygnalu': None, 'czujnik': 'temp', 'jednostka': '*C', 'minimum': -50.0, 'maksimum': 100.0}, {'wartosc': '23.8', 'aktualizacja': '1520020905', 'nazwa': 'testnode', 'nazwa_ui': 'Testowy', 'id_punktu': 15, 'jakosc_sygnalu': -75, 'czujnik': 'temp', 'jednostka': '*C', 'minimum': -50.0, 'maksimum': 100.0}, {'wartosc': '3.10', 'aktualizacja': '1520011249', 'nazwa': 'testnode', 'nazwa_ui': 'Testowy', 'id_punktu': 15, 'jakosc_sygnalu': -75, 'czujnik': 'bat', 'jednostka': 'V', 'minimum': 0.0, 'maksimum': 5.0}]"
  2.  
  3. # import json
  4. # data = json.loads( text )
  5.  
  6. data = eval(text)
  7. final_data = {}
  8. for item in data:
  9. d = {"czujnik": item["czujnik"],
  10. "wartosc": item["wartosc"],
  11. "maksimum": item["maksimum"],
  12. "minimum": item["minimum"],
  13. "aktualizacja": item["aktualizacja"],
  14. "jednostka": item["jednostka"]}
  15.  
  16. if item['nazwa'] in final_data:
  17. final_data[item['nazwa']]['readings'].append(d)
  18. else:
  19. final_data[item['nazwa']] = {
  20. "id_punktu": item["id_punktu"],
  21. "nazwa_ui": item["nazwa_ui"],
  22. "readings": [d]
  23. }
  24. print(final_data['artekroom'])
  25.  
Success #stdin #stdout 0.04s 9420KB
stdin
Standard input is empty
stdout
{'readings': [{'aktualizacja': '1519933403', 'czujnik': 'bat', 'jednostka': 'V', 'maksimum': 5.0, 'wartosc': '3.59', 'minimum': 0.0}, {'aktualizacja': '1519584193', 'czujnik': 'press', 'jednostka': 'hPa', 'maksimum': 1600.0, 'wartosc': '1020', 'minimum': 0.0}, {'aktualizacja': '1519576134', 'czujnik': 'temp', 'jednostka': '*C', 'maksimum': 100.0, 'wartosc': '21.2', 'minimum': -50.0}], 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1}