Python JSON变量不被接受

时间:2016-08-04 10:33:27

标签: python json

我正在尝试保存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

它出现了一个数字......

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

使用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'])