gpt4 book ai didi

python - WebHook 接收带有 +(加号)的字符串数据,其中空格应该是

转载 作者:太空宇宙 更新时间:2023-11-03 20:05:09 27 4
gpt4 key购买 nike

我的目标是通过 API Gateway 接收 WhatsApp 消息并将其存储在 DynamoDB 中。我通过网络钩子(Hook)通过以下方式接收数据。我的问题是,当 Body 应该作为“Hello world”保存到数据库中时。它被保存为“Hello+World”。您知道如何避免这种行为吗?

{'SmsMessageSid': 'SMb980630d616e300921cacc5d27835fb1', 'NumMedia': '0', 'SmsSid': 'SMb980630d616e300921cacc5d27835fb1', 'SmsStatus': 'received', 'Body': 'Test+131415+5%2B5%3D10', 'To': 'whatsapp%3A%2B4915734392273', 'NumSegments': '1', 'MessageSid': 'SMb980630d616e300921cacc5d27835fb1', 'AccountSid': 'AC358aa1d18557365a9e1f5e2ffcbcebe0', 'From': 'whatsapp%3A%2B4942357902', 'ApiVersion': '2010-04-01'}

当我打印收到的 webhook 时,我已经看到 Body 的格式是“错误”的。我尝试了以下方法

messageBody = event.get('Body')
messageBody = unquote(messageBody)

但这仅解决了 %2B%3D 现在显示为的部分

Test+131415+5+5=10

但是,测试 131415 之间的 + 仍然存在。

我的 API 网关集成请求中有以下映射模板(已找到 here ):

#set($httpPost = $input.path('$').split("&"))
{
#foreach( $kvPair in $httpPost )
#set($kvTokenised = $kvPair.split("="))
#if( $kvTokenised.size() > 1 )
"$kvTokenised[0]" : "$kvTokenised[1]"#if( $foreach.hasNext ),#end
#else
"$kvTokenised[0]" : ""#if( $foreach.hasNext ),#end
#end
#end
}

最佳答案

Here解决方案:urllib.parse.unquote_plus

关于python - WebHook 接收带有 +(加号)的字符串数据,其中空格应该是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59008454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com