繁体   English   中英

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

[英]Deserialize json in python to a separate value

我有一个 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'])

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

谢谢!

你真的不需要将字典分成不同的部分来保持每个部分作为变量供以后使用。 通常为此目的存在字典,该键可以用作您的变量,并且可以在需要时将值用作此类。 您只需要以这种方式遍历字典即可在任何时候获得您想要的:

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

您会注意到,可以将键声明为变量并分配给它们的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM