解析与编码JSON字符串

解析JSON字符串

教程https://mc.dfrobot.com.cn/thread-272080-1-1.html
过程
运用命令行测试代码,因此我们需要借助一个工具把JSON内容压缩成一行,这样我们就可以轻松地完成粘贴。我们将通过这个网站https://www.cleancss.com/json-minify/

接收JSON字符串并将其压缩到一行。

然后,复制JSON并在终端窗口右击,将其传递给Putty。

复习python(代码)

导入uJSON模块

 import ujson

访问ujson对象

以JSON字符串作为输入值进行接收,然后返回与已解析的JSON[1]对应的对象。

1  {
2  "name":"John"
3   },

压缩为一行为

1  {"name":"John"},

存储于名为parsed(已解析)的变量中

为了从JSON结构转义引号,我们在字符串两边添加"""符号将其括起来。
json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)

1 parsed = ujson.loads("""{"name":"John"}""")

验证

验证返回对象已正确获取JSON内容,并用type函数打印对象的类型。

1   print (parsed)
2   print (type(parsed))

获取“name”键的值

意为获取字典中该键的值,此过程和获取数组值相似,但此处用的不是索引,而是字符串格式的键。

1   print(parsed["name"])

控制台上会打印姓名“John”,对象类型为字典。
在这里插入图片描述
同理,显示从物联网设备发送的消息。

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

在这里插入图片描述

编码JSON字符串

物联网设备可能发出的消息,包含设备(温度传感器)类型和部分虚拟测量值。
想要获取以下:

1   {
2    "deviceType": "Temperature",
3    "values": [23,22,25]
4     }

Python字典:名称-值,名称-值结构非常适合JSON的结构。

首先,将一个空字典赋值给一个名为dict的变量。

dict = {}

然后,将字符串“Temperature”(温度)赋值给键“deviceType”(设备类型)。

dict["deviceType"] = "Temperature"

我们还要将一个包含JSON所示值的列表赋值给键“values”(值)。请注意,Python字典的值可以是列表等对象[1]。

dict["values"] = [23,22,25]

赋值后,我们将打印字典变量,此步骤只是为了确认赋值无误。

print(dict)


我们得到了一个包含一些名称-值对的字典结构。请注意,Python字典的字符串表示形式与JSON字符串非常相似。

1    dict = {}
2    dict["deviceType"] = "Temperature"
3    dict["values"] = [23,22,25]
4
5     print(dict)

json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)

将字典转换为JSON字符串

打印了已编码的字符串。请注意,此输出结果与我们之前获得的字典的字符串表示形式非常相似,但它的名称和值现在是介于双引号而不是单引号之间,这就是JSON的格式。 区别如下图。

1    encoded = ujson.dumps(dict)
2     print(encoded)

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章