首页 > 解决方案 > 解析 json 文件以收集数据并存储在列表/数组中

问题描述

我正在尝试建立一个物联网设置。我正在考虑使用 json 文件来存储传感器的状态和设置的灯光。

我创建了一个函数来测试我的概念。这是我迄今为止为数据方面所写的内容。

            {
                "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()

我想要做的是将sensor_id解析成一个数组,以便我可以通过例如sensor_name [0]来访问它们。我不知道该怎么做。我尝试了 array.array 但它没有保存任何值,也尝试了 .append 但不是我预期的结果。有什么建议么?

标签: pythonarraysjsonlist

解决方案


如果我理解正确,您所要做的就是将所有这些传感器分配给names使用for循环,然后返回结果:

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])

这将打印:

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

推荐阅读