我正在尝试保存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
它出现了一个数字......
非常感谢任何帮助!!
答案 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'])