esp32的python教程步数采集_ESP32 MicroPython教程:解析JSON

本教程介绍了如何在ESP32上使用MicroPython解析JSON字符串。通过导入uJSON模块,解析简单的JSON对象,并演示了如何访问解析后的字典内容,包括从物联网设备发送的复杂消息结构。
摘要由CSDN通过智能技术生成

本micropython教程旨在阐释如何使用在ESP32上运行的MicroPython解析JSON字符串。

简介

本文旨在阐释如何使用在ESP32上运行的MicroPython解析JSON字符串。如果你想了解在代码

连接到Python提示符后,就可以开始编码了。我们首先要做的是导入uJSON模块。只需键入下方表达式并按回车键即可。

[mw_shl_code=applescript,true]1 import ujson[/mw_shl_code]

之后,我们就可以访问ujson对象了,这将使loads方法生效。此方法以JSON字符串作为输入值进行接收,然后返回与已解析的JSON[1]对应的对象。我们将从一个简单的JSON结构开始,该结构如下所示。[mw_shl_code=applescript,true]1  {

2  "name":"John"

3   },[/mw_shl_code]

把它压缩成一行后,我们得到如下所示的JSON字符串。

[mw_shl_code=applescript,true]1  {"name":"John"},[/mw_shl_code]

我们现在将此字符串作为前文提到的loads方法的输入值进行传递。请注意,为了从JSON结构转义引号,我们在字符串两边添加"""符号将其括起来。对象将被存储于名为parsed(已解析)的变量中。

[mw_shl_code=applescript,true]1 parsed = ujson.loads("""{"name":"John"}""")[/mw_shl_code]

现在,我们来验证返回对象已正确获取JSON内容。我们将其打印出来。此外,我们要使用type函数打印对象的类型。

[mw_shl_code=applescript,true]1   print (parsed)

2   print (type(parsed))[/mw_shl_code]

在运行完上文全部代码后,我们应该会得到一个类似于图1的结果。请注意,包含已解析内容的对象的类型是Python字典(https://www.tutorialspoint.com/python/python_dictionary.htm),因此以键值的形式获取内容非常适用。

Figure 1 – Parsing the JSON string..png (17.1 KB, 下载次数: 4)

2018-11-7 14:05 上传

图1 - 解析JSON字符串。

现在,我们将获取“name”键的值。它应返回“John”。要获取字典中该键的值,请发送以下命令。请注意,此过程和获取数组值相似,但此处用的不是索引,而是字符串格式的键。

[mw_shl_code=applescript,true]1   print(parsed["name"])[/mw_shl_code]

你应该会得到类似于图2的结果。请注意,控制台上会打印姓名“John”。

Figure 2 – Accessing the parsed values of the dictionary object..png (34.06 KB, 下载次数: 4)

2018-11-7 14:05 上传

图2 - 访问字典对象的已解析值。

为了完成示例,我们现在将解析更复杂的结构,如下所示。例如,显示从物联网设备发送的消息。

[mw_shl_code=applescript,true]1   {

2    "device":"temperature",

3    "id":543,

4    "values":[1,2,3]

5     }[/mw_shl_code]

压缩后,我们得到以下结果:

[mw_shl_code=applescript,true]1  {"device":"temperature","id":543,"values":[1,2,3]}[/mw_shl_code]

我们现在将对其进行解析并打印JSON结构中的所有键。我们还将打印“values”结构的类型,以了解解析程序映射它的方式。

[mw_shl_code=applescript,true]1    parsed = ujson.loads("""{"device":"temperature","id":543,"values":[1,2,3]}""")

2    print (parsed["device"])

3    print (parsed["id"])

4    print (parsed["values"])

5

6    print(type(parsed["values"]))[/mw_shl_code]

你应该会得到类似于图3的结果。可以看出,每个键的所有值都已正确打印。在“values”键的实例中,字典内的结构是一个列表,而不是值的字符串表示形式。这自然更为有利,因为我们可以使用列表可用的所有函数对这些值进行操作,从而降低操作难度。

Figure 3 – Result of the JSON content parsed..png (33.67 KB, 下载次数: 5)

2018-11-7 14:05 上传

图3 – JSON内容解析后的结果。

注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。

查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程 汇总贴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值