不接受Python JSON变量

2024-09-23 22:31:16 发布

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

我正试图将JSON字符串中的变量保存起来,作为其他函数的设置,但遗憾的是,它们并没有被我所希望的那么好地接受。这是烹饪的东西

JSON字符串通过MQTT传递,如下所示:

def on_message(client, userdata, msg):
        data = json.loads(msg.payload)
        camera = picamera.PiCamera()
        camera.resolution = (2592, 1944)
        camera.sharpness = data['sharpness']
        camera.contrast = data['contrast']

但是,当它收到消息时,它会出错:

>   File "/usr/local/lib/python2.7/dist-packages/picamera/camera.py",
> line 2392, in _set_sharpness
>     "Invalid sharpness value: %d (valid range -100..100)" % value) TypeError: %d format: a number is required, not unicode

知道为什么吗?我真的不知道为什么打印数据时会出现%d:

print data['sharpness']
>>> 50

它是一个数字。。。你知道吗

非常感谢您的帮助!!你知道吗


Tags: 函数字符串jsonmessagedatavalueondef
1条回答
网友
1楼 · 发布于 2024-09-23 22:31:16

int包装您的值,因为它们是unicode格式的

def on_message(client, userdata, msg):
        data = json.loads(msg.payload)
        camera = picamera.PiCamera()
        camera.resolution = (2592, 1944)
        camera.sharpness = int(data['sharpness'])
        camera.contrast = int(data['contrast'])

相关问题 更多 >