sakib11
sakib11

Reputation: 536

Parsing json file to collect data and store in a list/array

I am trying to build an IOT setup. I am thinking of using a json file to store states of the sensors and lights of the setup.

I have created a function to test out my concept. Here is what I wrote so far for the data side of things.

            {
                "sensor_data": [
                    {
                        "sensor_id": "302CEM/lion/light1",
                        "sensor_state": "on"
                    },
                    {
                        "sensor_id": "302CEM/lion/light2",
                        "sensor_state": "off"
                    }
                ]
            }

            def read_from_db():
                with open('datajson.json') as f:
                    data = json.load(f)

                for sensors in data['sensor_data']:
                    name = sensors['sensor_id']



            read_from_db()

What I want to do is to parse the sensor_id into an array so that I can access them by saying for example sensor_name[0]. I am not sure how to go about it. I tried array.array but it doesn't save any values, have also tried .append but not the result I expected. Any suggestions?

Upvotes: 1

Views: 988

Answers (1)

Vasilis G.
Vasilis G.

Reputation: 7846

If I understood correctly, all you have to do is assign all those sensors to names using a for loop and then return the result:

import json

def read_from_db():
    with open('sensor_data.json') as f:
        data = json.load(f)
        names = [sensors['sensor_id'] for sensors in data['sensor_data']]
        return names

sensor_names = read_from_db()
for i in range(len(sensor_names)):
    print(sensor_names[i])

This will print:

302CEM/lion/light1
302CEM/lion/light2

Upvotes: 2

Related Questions