【问题标题】:"if" statement acting weird in twilio texting project“if”语句在 twilio 短信项目中表现得很奇怪
【发布时间】:2020-09-27 22:28:12
【问题描述】:

我正在尝试创建一个发短信项目,我可以在其中发短信给 twilio 号码,并根据消息内容,我可以回复自定义消息。我正在使用一串 if 语句来检查文本的正文并回复某些内容

app = Flask(__name__)

@app.route("/sms", methods=['GET', 'POST'])

def sms_reply():
  reply_pointer = 0
  body = request.values.get('Body', None)
  resp = MessagingResponse()

  print(body)

  if(body == "Test1"): reply_pointer = 0
  elif(body == "Test2"): reply_pointer = 1
  elif(body == "Test3"): reply_pointer = 2
  elif(body == "Test4"): reply_pointer = 3


  print(reply_pointer)

我正在通过手机发送这些消息,如果我通过 Test3 发送 Test1,我会得到正常结果,但是当我发送 Test4 时,reply_pointer 设置为 0,如果我发送 Test1、Test2 等,它会保持为 0。我已经一直在努力解决这个问题,我不知道发生了什么。

【问题讨论】:

    标签: python if-statement twilio


    【解决方案1】:

    问题在于body 内容。 我在本地测试了代码的底部,如果body 确实是"Test4",它可以正常工作:

    >>> reply_pointer = 0
    >>> body = "Test4"
    >>> 
    >>> if(body == "Test1"): reply_pointer = 0
    ... elif(body == "Test2"): reply_pointer = 1
    ... elif(body == "Test3"): reply_pointer = 2
    ... elif(body == "Test4"): reply_pointer = 3
    ... 
    >> reply_pointer
    3
    

    检查body 是否不包含任何其他字符。您可以将body == "Test4" 替换为"Test4" in body,以检查匹配的子字符串。

    【讨论】:

    • 感谢您的回复。在我的实际程序中,我有句子而不是 Test1、Test2 等。我每次都在打印身体,一切似乎都匹配,但我只是将所有内容都更改为 Test1、Test2,现在它正在工作。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多