python - 解析 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 但不是我预期的结果。有什么建议么?
解决方案
如果我理解正确,您所要做的就是将所有这些传感器分配给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
推荐阅读
- c# - 除三个句点(省略号)外,围绕字母的句点的正则表达式
- c - Visual Studio 代码包含路径
- php - 从 API 填充数据库
- android - RecyclerView Post VS addOnPreDrawListener
- google-fit - 请求失败,状态码 401 com.google.step_count.delta
- java - 使用 jboss 5.1 获取真实的客户端 IP 地址
- image - 仅在加载所有图像后显示组件
- c# - 如何使用循环将多个图像加载到图片框中而不重复代码?
- wordpress - 如果自定义分类模板上有帖子,则显示子术语
- hadoop - Apache Hadoop 名称节点备份文件