Python 代码中的result.message不是字符串吗?
我想比较pubnub上发布的字符串和其他字符串,以便在raspberry pi3中相应地将gpio引脚设置为高或低。 如果此“result.message”不是字符串,那么如何将其转换为字符串类型。python程序通过pubnub接收的消息存储在对象类型的“message”中。 考虑到通过pubnub发布的消息是字符串类型的。 终端上打印的消息非常好,但比较代码不起作用(如果result.message为“stop”: 这是python程序Python 代码中的result.message不是字符串吗?,python,publish-subscribe,raspberry-pi3,gpio,pubnub,Python,Publish Subscribe,Raspberry Pi3,Gpio,Pubnub,我想比较pubnub上发布的字符串和其他字符串,以便在raspberry pi3中相应地将gpio引脚设置为高或低。 如果此“result.message”不是字符串,那么如何将其转换为字符串类型。python程序通过pubnub接收的消息存储在对象类型的“message”中。 考虑到通过pubnub发布的消息是字符串类型的。 终端上打印的消息非常好,但比较代码不起作用(如果result.message为“stop”: 这是python程序 #!/usr/bin/python f
#!/usr/bin/python
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNOperationType, PNStatusCategory
from pubnub.pubnub import PubNub, SubscribeListener
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(12,GPIO.OUT)
GPIO.setup(16,GPIO.OUT)
GPIO.setup(20,GPIO.OUT)
GPIO.setup(21,GPIO.OUT)
pnconfig = PNConfiguration()
pnconfig.subscribe_key = "sub-c-fcf7d96e-501b-11e7-abef-0619f8945a4f"
pnconfig.publish_key = "pub-c-7bf2b0e2-d63a-48eb-8d10-55afcb0ef5c9"
pnconfig.ssl = True
pubnub = PubNub(pnconfig)
my_listener = SubscribeListener()
pubnub.add_listener(my_listener)
class MySubscribeCallback(SubscribeCallback):
def status(self, pubnub, status):
pass
if status.operation == PNOperationType.PNSubscribeOperation \
or status.operation == PNOperationType.PNUnsubscribeOperation:
if status.category == PNStatusCategory.PNConnectedCategory:
pass
elif status.category ==PNStatusCategory.PNReconnectedCategory:
pass
elif status.category==PNStatusCategory.PNDisconnectedCategory:
pass
elif status.categoryPNStatusCategory.PNUnexpectedDisconnectCategory:
pass
elif status.category == PNStatusCategory.PNAccessDeniedCategory:
pass
else:
pass
elif status.operation == PNOperationType.PNSubscribeOperation:
if status.is_error():
pass
else:
pass
else:
pass
def presence(self, pubnub, presence):
pass # handle incoming presence data
def message(self, pubnub, message):
result = my_listener.wait_for_message_on('awesomeChannel')
name=result.message
if result.message is "stop":
GPIO.output(12,GPIO.LOW)
GPIO.output(16,GPIO.LOW)
GPIO.output(20,GPIO.LOW)
GPIO.output(21,GPIO.LOW)
elif result.message is "right":
GPIO.output(12,GPIO.LOW)
GPIO.output(16,GPIO.LOW)
GPIO.output(20,GPIO.HIGH)
GPIO.output(21,GPIO.LOW)
TIME.sleep(4)
GPIO.output(12,GPIO.HIGH)
GPIO.output(16,GPIO.LOW)
GPIO.output(20,GPIO.HIGH)
GPIO.output(21,GPIO.LOW)
elif result.message is "left":
GPIO.output(12,GPIO.HIGH)
GPIO.output(16,GPIO.LOW)
GPIO.output(20,GPIO.LOW)
GPIO.output(21,GPIO.LOW)
TIME.sleep(4)
GPIO.output(12,GPIO.HIGH)
GPIO.output(16,GPIO.LOW)
GPIO.output(20,GPIO.HIGH)
GPIO.output(21,GPIO.LOW)
elif result.message is "forward":
GPIO.output(12,GPIO.HIGH)
GPIO.output(16,GPIO.LOW)
GPIO.output(20,GPIO.HIGH)
GPIO.output(21,GPIO.LOW)
elif result.message is "backward":
GPIO.output(12,GPIO.LOW)
GPIO.output(16,GPIO.HIGH)
GPIO.output(20,GPIO.LOW)
GPIO.output(21,GPIO.HIGH)
print(result.message)
pubnub.add_listener(MySubscribeCallback())
pubnub.subscribe().channels('awesomeChannel').execute()
str(result.message.parameter)
将消息对象的参数转换为字符串。str(result.message.parameter)
将消息对象的参数转换为字符串。