我向 RASA 聊天机器人发送了一个 POST 命令,其中包含一条消息。我的请求看起来像这样
import requests
import json
jsonbody = '{"message": "Wann ist der nächste Feiertag?"}'
r = requests.post('http://localhost:5005/webhooks/rest/webhook', data=jsonbody,
headers={'content-type': 'application/json'})
js = r.text
rep = json.loads(js)
我raise JSONDecodeError("Expecting value", s, err.value) from None
在跑步时得到rep = json.loads(js)
。
经过进一步调查,我发现我Response 400
从 POST 请求中得到了一个。
我尝试了几件事,例如我将德语更改ä
为ae
. 这很完美。打印 js 字符串后,print(js)
我得到以下机器人响应
'[{"recipient_id":"default","text":"Der n\\u00e4chste Feiertag ist Tag der Deutschen Einheit am Donnerstag den 03.10.2019"}]'
打印列表后,print(rep)
我收到了最后一条消息。
[{'recipient_id': 'default',
'text': 'Der nächste Feiertag ist Tag der Deutschen Einheit am Donnerstag den 03.10.2019'}]
所以这里的问题是我的jsonbody中的德语变音符号。尽管在我发送请求ae
而不是ä
最后,它们显示为正确的。我已经尝试像这样在我的请求中设置一个字符集
r = requests.post('http://localhost:5005/webhooks/rest/webhook', data=jsonbody,
headers={'content-type': 'application/json; charset=unicode'})
但执行后我再次收到 Response 400 错误。
我将 conda 4.6.2 与 Python 3.6.6 一起使用。我认为 Python 3 可以处理像德语变音符号这样的特殊字符。
有什么建议可以在 POST 请求中允许德语变音符号吗?