Search code examples
pythonjsonopenhardwaremonitor

Python json open hardware monitor


Im trying to make an script in python to get values from the json files in open hardware monitor application.

When i read the json with this

response = urllib.urlopen(url) jsond = json.loads(response.read())

i get this output

{u'Min': u'Min', u'Text': u'Sensor', u'ImageURL': u'', u'Value': u'Value', u'Children': [{u'Min': u'', u'Text': u'P4N-PC', u'ImageURL': u'images_icon/computer.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Gigabyte GA-890GPA-UD3H', u'ImageURL': u'images_icon/mainboard.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'ITE IT8720F', u'ImageURL': u'images_icon/chip.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Voltages', u'ImageURL': u'images_icon/voltage.png', u'Value': u'', u'Children': [{u'Min': u'1,472 V', u'Text': u'CPU VCore', u'ImageURL': u'images/transparent.png', u'Value': u'1,488 V', u'Children': [], u'Max': u'1,488 V', u'id': 5}, {u'Min': u'1,648 V', u'Text': u'DRAM', u'ImageURL': u'images/transparent.png', u'Value': u'1,648 V', u'Children': [], u'Max': u'1,664 V', u'id': 6}, {u'Min': u'3,104 V', u'Text': u'+3.3V', u'ImageURL': u'images/transparent.png', u'Value': u'3,120 V', u'Children': [], u'Max': u'3,152 V', u'id': 7}, {u'Min': u'4,973 V', u'Text': u'+5V', u'ImageURL': u'images/transparent.png', u'Value': u'5,027 V', u'Children': [], u'Max': u'5,053 V', u'id': 8}, {u'Min': u'2,896 V', u'Text': u'Voltage #5', u'ImageURL': u'images/transparent.png', u'Value': u'2,928 V', u'Children': [], u'Max': u'2,976 V', u'id': 9}, {u'Min': u'2,896 V', u'Text': u'Voltage #6', u'ImageURL': u'images/transparent.png', u'Value': u'2,960 V', u'Children': [], u'Max': u'3,392 V', u'id': 10}, {u'Min': u'4,080 V', u'Text': u'Voltage #7', u'ImageURL': u'images/transparent.png', u'Value': u'4,080 V', u'Children': [], u'Max': u'4,080 V', u'id': 11}, {u'Min': u'2,144 V', u'Text': u'Voltage #8', u'ImageURL': u'images/transparent.png', u'Value': u'2,144 V', u'Children': [], u'Max': u'2,144 V', u'id': 12}, {u'Min': u'3,264 V', u'Text': u'VBat', u'ImageURL': u'images/transparent.png', u'Value': u'3,264 V', u'Children': [], u'Max': u'3,264 V', u'id': 13}], u'Max': u'', u'id': 4}, {u'Min': u'', u'Text': u'Temperatures', u'ImageURL': u'images_icon/temperature.png', u'Value': u'', u'Children': [{u'Min': u'36,0 \xb0C', u'Text': u'Temperature #1', u'ImageURL': u'images/transparent.png', u'Value': u'38,0 \xb0C', u'Children': [], u'Max': u'39,0 \xb0C', u'id': 15}, {u'Min': u'43,0 \xb0C', u'Text': u'Temperature #2', u'ImageURL': u'images/transparent.png', u'Value': u'47,0 \xb0C', u'Children': [], u'Max': u'52,0 \xb0C', u'id': 16}, {u'Min': u'47,0 \xb0C', u'Text': u'Temperature #3', u'ImageURL': u'images/transparent.png', u'Value': u'51,0 \xb0C', u'Children': [], u'Max': u'52,0 \xb0C', u'id': 17}], u'Max': u'', u'id': 14}, {u'Min': u'', u'Text': u'Fans', u'ImageURL': u'images_icon/fan.png', u'Value': u'', u'Children': [{u'Min': u'940 RPM', u'Text': u'Fan #1', u'ImageURL': u'images/transparent.png', u'Value': u'1047 RPM', u'Children': [], u'Max': u'1090 RPM', u'id': 19}, {u'Min': u'1880 RPM', u'Text': u'Fan #3', u'ImageURL': u'images/transparent.png', u'Value': u'1896 RPM', u'Children': [], u'Max': u'1907 RPM', u'id': 20}, {u'Min': u'1160 RPM', u'Text': u'Fan #5', u'ImageURL': u'images/transparent.png', u'Value': u'1164 RPM', u'Children': [], u'Max': u'1180 RPM', u'id': 21}], u'Max': u'', u'id': 18}, {u'Min': u'', u'Text': u'Controls', u'ImageURL': u'images_icon/control.png', u'Value': u'', u'Children': [{u'Min': u'-', u'Text': u'Fan Control #1', u'ImageURL': u'images/transparent.png', u'Value': u'-', u'Children': [], u'Max': u'-', u'id': 23}, {u'Min': u'-', u'Text': u'Fan Control #2', u'ImageURL': u'images/transparent.png', u'Value': u'-', u'Children': [], u'Max': u'-', u'id': 24}, {u'Min': u'100,0 %', u'Text': u'Fan Control #3', u'ImageURL': u'images/transparent.png', u'Value': u'100,0 %', u'Children': [], u'Max': u'100,0 %', u'id': 25}], u'Max': u'', u'id': 22}], u'Max': u'', u'id': 3}], u'Max': u'', u'id': 2}, {u'Min': u'', u'Text': u'AMD Phenom II X6 1055T Processor', u'ImageURL': u'images_icon/cpu.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Clocks', u'ImageURL': u'images_icon/clock.png', u'Value': u'', u'Children': [{u'Min': u'257 MHz', u'Text': u'Bus Speed', u'ImageURL': u'images/transparent.png', u'Value': u'257 MHz', u'Children': [], u'Max': u'257 MHz', u'id': 28}, {u'Min': u'3598 MHz', u'Text': u'CPU Core #1', u'ImageURL': u'images/transparent.png', u'Value': u'3598 MHz', u'Children': [], u'Max': u'3598 MHz', u'id': 29}, {u'Min': u'3598 MHz', u'Text': u'CPU Core #2', u'ImageURL': u'images/transparent.png', u'Value': u'3598 MHz', u'Children': [], u'Max': u'3598 MHz', u'id': 30}, {u'Min': u'3598 MHz', u'Text': u'CPU Core #3', u'ImageURL': u'images/transparent.png', u'Value': u'3598 MHz', u'Children': [], u'Max': u'3598 MHz', u'id': 31}, {u'Min': u'3598 MHz', u'Text': u'CPU Core #4', u'ImageURL': u'images/transparent.png', u'Value': u'3598 MHz', u'Children': [], u'Max': u'3598 MHz', u'id': 32}, {u'Min': u'3598 MHz', u'Text': u'CPU Core #5', u'ImageURL': u'images/transparent.png', u'Value': u'3598 MHz', u'Children': [], u'Max': u'3598 MHz', u'id': 33}, {u'Min': u'3598 MHz', u'Text': u'CPU Core #6', u'ImageURL': u'images/transparent.png', u'Value': u'3598 MHz', u'Children': [], u'Max': u'3598 MHz', u'id': 34}], u'Max': u'', u'id': 27}, {u'Min': u'', u'Text': u'Temperatures', u'ImageURL': u'images_icon/temperature.png', u'Value': u'', u'Children': [{u'Min': u'31,5 \xb0C', u'Text': u'Core #1 - #6', u'ImageURL': u'images/transparent.png', u'Value': u'35,6 \xb0C', u'Children': [], u'Max': u'42,4 \xb0C', u'id': 36}], u'Max': u'', u'id': 35}, {u'Min': u'', u'Text': u'Load', u'ImageURL': u'images_icon/load.png', u'Value': u'', u'Children': [{u'Min': u'0,0 %', u'Text': u'CPU Total', u'ImageURL': u'images/transparent.png', u'Value': u'6,0 %', u'Children': [], u'Max': u'54,2 %', u'id': 38}, {u'Min': u'0,0 %', u'Text': u'CPU Core #1', u'ImageURL': u'images/transparent.png', u'Value': u'9,4 %', u'Children': [], u'Max': u'100,0 %', u'id': 39}, {u'Min': u'0,0 %', u'Text': u'CPU Core #2', u'ImageURL': u'images/transparent.png', u'Value': u'3,1 %', u'Children': [], u'Max': u'100,0 %', u'id': 40}, {u'Min': u'0,0 %', u'Text': u'CPU Core #3', u'ImageURL': u'images/transparent.png', u'Value': u'3,1 %', u'Children': [], u'Max': u'81,3 %', u'id': 41}, {u'Min': u'0,0 %', u'Text': u'CPU Core #4', u'ImageURL': u'images/transparent.png', u'Value': u'3,1 %', u'Children': [], u'Max': u'95,3 %', u'id': 42}, {u'Min': u'0,0 %', u'Text': u'CPU Core #5', u'ImageURL': u'images/transparent.png', u'Value': u'3,1 %', u'Children': [], u'Max': u'89,1 %', u'id': 43}, {u'Min': u'0,0 %', u'Text': u'CPU Core #6', u'ImageURL': u'images/transparent.png', u'Value': u'14,1 %', u'Children': [], u'Max': u'79,7 %', u'id': 44}], u'Max': u'', u'id': 37}], u'Max': u'', u'id': 26}, {u'Min': u'', u'Text': u'Generic Memory', u'ImageURL': u'images_icon/ram.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Load', u'ImageURL': u'images_icon/load.png', u'Value': u'', u'Children': [{u'Min': u'16,9 %', u'Text': u'Memory', u'ImageURL': u'images/transparent.png', u'Value': u'29,5 %', u'Children': [], u'Max': u'31,1 %', u'id': 47}], u'Max': u'', u'id': 46}, {u'Min': u'', u'Text': u'Data', u'ImageURL': u'images_icon/power.png', u'Value': u'', u'Children': [{u'Min': u'2,7 GB', u'Text': u'Used Memory', u'ImageURL': u'images/transparent.png', u'Value': u'4,7 GB', u'Children': [], u'Max': u'5,0 GB', u'id': 49}, {u'Min': u'11,0 GB', u'Text': u'Available Memory', u'ImageURL': u'images/transparent.png', u'Value': u'11,3 GB', u'Children': [], u'Max': u'13,3 GB', u'id': 50}], u'Max': u'', u'id': 48}], u'Max': u'', u'id': 45}, {u'Min': u'', u'Text': u'AMD Radeon (TM) R9 390 Series', u'ImageURL': u'images_icon/ati.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Clocks', u'ImageURL': u'images_icon/clock.png', u'Value': u'', u'Children': [{u'Min': u'1040 MHz', u'Text': u'GPU Core', u'ImageURL': u'images/transparent.png', u'Value': u'1040 MHz', u'Children': [], u'Max': u'1040 MHz', u'id': 53}, {u'Min': u'1500 MHz', u'Text': u'GPU Memory', u'ImageURL': u'images/transparent.png', u'Value': u'1500 MHz', u'Children': [], u'Max': u'1500 MHz', u'id': 54}], u'Max': u'', u'id': 52}, {u'Min': u'', u'Text': u'Temperatures', u'ImageURL': u'images_icon/temperature.png', u'Value': u'', u'Children': [{u'Min': u'54,0 \xb0C', u'Text': u'GPU Core', u'ImageURL': u'images/transparent.png', u'Value': u'66,0 \xb0C', u'Children': [], u'Max': u'68,0 \xb0C', u'id': 56}], u'Max': u'', u'id': 55}, {u'Min': u'', u'Text': u'Load', u'ImageURL': u'images_icon/load.png', u'Value': u'', u'Children': [{u'Min': u'0,0 %', u'Text': u'GPU Core', u'ImageURL': u'images/transparent.png', u'Value': u'100,0 %', u'Children': [], u'Max': u'100,0 %', u'id': 58}], u'Max': u'', u'id': 57}, {u'Min': u'', u'Text': u'Fans', u'ImageURL': u'images_icon/fan.png', u'Value': u'', u'Children': [{u'Min': u'1451 RPM', u'Text': u'GPU Fan', u'ImageURL': u'images/transparent.png', u'Value': u'2091 RPM', u'Children': [], u'Max': u'2100 RPM', u'id': 60}], u'Max': u'', u'id': 59}, {u'Min': u'', u'Text': u'Controls', u'ImageURL': u'images_icon/control.png', u'Value': u'', u'Children': [{u'Min': u'30,0 %', u'Text': u'GPU Fan', u'ImageURL': u'images/transparent.png', u'Value': u'43,0 %', u'Children': [], u'Max': u'43,0 %', u'id': 62}], u'Max': u'', u'id': 61}], u'Max': u'', u'id': 51}, {u'Min': u'', u'Text': u'Generic Hard Disk', u'ImageURL': u'images_icon/hdd.png', u'Value': u'', u'Children': [], u'Max': u'', u'id': 63}, {u'Min': u'', u'Text': u'Generic Hard Disk', u'ImageURL': u'images_icon/hdd.png', u'Value': u'', u'Children': [], u'Max': u'', u'id': 64}, {u'Min': u'', u'Text': u'Generic Hard Disk', u'ImageURL': u'images_icon/hdd.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Load', u'ImageURL': u'images_icon/load.png', u'Value': u'', u'Children': [{u'Min': u'0,0 %', u'Text': u'Used Space', u'ImageURL': u'images/transparent.png', u'Value': u'0,0 %', u'Children': [], u'Max': u'0,0 %', u'id': 67}], u'Max': u'', u'id': 66}], u'Max': u'', u'id': 65}, {u'Min': u'', u'Text': u'Generic Hard Disk', u'ImageURL': u'images_icon/hdd.png', u'Value': u'', u'Children': [], u'Max': u'', u'id': 68}, {u'Min': u'', u'Text': u'SAMSUNG SSD 830 Series', u'ImageURL': u'images_icon/hdd.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Temperatures', u'ImageURL': u'images_icon/temperature.png', u'Value': u'', u'Children': [{u'Min': u'33,0 \xb0C', u'Text': u'Temperature', u'ImageURL': u'images/transparent.png', u'Value': u'37,0 \xb0C', u'Children': [], u'Max': u'37,0 \xb0C', u'id': 71}], u'Max': u'', u'id': 70}, {u'Min': u'', u'Text': u'Load', u'ImageURL': u'images_icon/load.png', u'Value': u'', u'Children': [{u'Min': u'83,9 %', u'Text': u'Used Space', u'ImageURL': u'images/transparent.png', u'Value': u'83,9 %', u'Children': [], u'Max': u'83,9 %', u'id': 73}], u'Max': u'', u'id': 72}, {u'Min': u'', u'Text': u'Data', u'ImageURL': u'images_icon/power.png', u'Value': u'', u'Children': [{u'Min': u'-259,7 GB', u'Text': u'Total LBA Written', u'ImageURL': u'images/transparent.png', u'Value': u'-259,1 GB', u'Children': [], u'Max': u'-259,1 GB', u'id': 75}], u'Max': u'', u'id': 74}], u'Max': u'', u'id': 69}, {u'Min': u'', u'Text': u'SAMSUNG HD154UI', u'ImageURL': u'images_icon/hdd.png', u'Value': u'', u'Children': [{u'Min': u'', u'Text': u'Temperatures', u'ImageURL': u'images_icon/temperature.png', u'Value': u'', u'Children': [{u'Min': u'22,0 \xb0C', u'Text': u'Temperature', u'ImageURL': u'images/transparent.png', u'Value': u'26,0 \xb0C', u'Children': [], u'Max': u'26,0 \xb0C', u'id': 78}], u'Max': u'', u'id': 77}, {u'Min': u'', u'Text': u'Load', u'ImageURL': u'images_icon/load.png', u'Value': u'', u'Children': [{u'Min': u'68,1 %', u'Text': u'Used Space', u'ImageURL': u'images/transparent.png', u'Value': u'68,1 %', u'Children': [], u'Max': u'68,1 %', u'id': 80}], u'Max': u'', u'id': 79}], u'Max': u'', u'id': 76}], u'Max': u'', u'id': 1}], u'Max': u'Max', u'id': 0}

but when i try to get the values like this:

for val in jsond: print val['Max']

i have and index error, so i remove the index and print only "val" and i can see Max, Min, etc.. like strings, not index...

I dont know what to do..

the url is http://p4n.franblanco.info:8085/data.json

Thanks for the help.


Solution

  • jsond is a dictionary at the top level, not a list. So for val in jsond: is iterating over the keys. If you want the max of the outer level here, you'd just print jsond['Max'].