将python中的json反序列化为单独的值

2024-10-02 08:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Arduino,它在MQTT服务器中发布json字符串。 我用python阅读了这个主题,看到了以下内容:

{"temp1": 123, "vol1": 456, "cur1": 789, "pf1": 321, "p1":654}

如何划分各个部分,并将它们分配给稍后在脚本中使用的变量

es:

temp1 = 123
vol1 = 456

编辑: 我的json字符串如下:{"temp1":26.44,"vol1":0.00,"cur1":0.04,"pf1":1.00,"p1":4000.00,"s1":0.00,"f1":48.84,"p1max":4000.00,"en1":16.00,"prev_en1":0.00,"m_en1":0.00,"prev_m_en1":0.00}

    pacdata = msg.payload.decode("utf-8")
    print("pacdata= ",str(pacdata))
    my_set = str(pacdata)
    print("my_set= ",my_set)
    my_var = []
    my_var1 = []
    for x,y in my_set.items():
        print (x,'=',y)
        x = y
    print("value temp1: ", my_set['temp1'])

如果我用你的代码写(复制)这个字符串,一切正常,如果我使用包含这个字符串的变量,脚本就不工作了。。。 为什么?

谢谢


Tags: 字符串脚本jsonmyprintsetp1str
1条回答
网友
1楼 · 发布于 2024-10-02 08:24:26

您真的不需要将字典划分为多个部分,以将每个部分作为变量保留,以便以后使用。字典的存在通常是为了这样的目的,即键可以在需要时用作变量和值。您只需以这种方式迭代字典即可在以下情况下获得所需:

my_set = {"temp1": 123, "vol1": 456, "cur1": 789, "pf1": 321, "p1":654}
for x,y in my_set.items():
   print (x,'=',y) 

正如您所注意到的,可以将键声明为变量以及分配给它们的值

相关问题 更多 >

    热门问题