所以我试图用python编写一个简单的包装器来调用rasa,一个nlu工具。我在命令行上写的命令是这样的:
curl -X POST "localhost:5000/parse" -d '{"q":"我在找他妈的墨西哥菜"}' | python -m json.tool
我期望的输出是这样的:
% Total % Received % Xferd 平均速度 时间 时间 当前 Dload 上传总花费 左速度 100 545 0 500 100 45 33615 3025 --:--:-- --:--:-- --:--:-- 35714
加上一个json文件的输出。
我用python写了这个程序:
import subprocess
utterance = "Lets say something"
result = subprocess.run(["curl", "-X", "POST", "localhost:5000/parse", "-d", "'{\"q\":\""+utterance+"\"}'", "|", "python", "-m", "json.tool"], stdout=subprocess.PIPE)
print(vars(result))
print(result.stdout.decode('utf-8'))
不幸的是,我的输出是这样的,这意味着我实际上并没有从 curl 调用中获得返回:
{'args': ['curl', '-X', 'POST', 'localhost:5000/parse', '-d', '\'{"q":"让我们说点什么"}\'', '|', 'python', '-m', 'json.tool'], 'returncode': 2, 'stdout': b'', 'stderr': 无}
如果我从命令行调用我的 python 程序,输出如下:
curl:选项 -m:需要一个正确的数字参数 curl:尝试 'curl --help' 或 'curl --manual' 获取更多信息 {'args': ['curl', '-X', 'POST', ' localhost:5000/parse', '-d', '\'{"q":"让我们说点什么"}\'', '|', 'python', '-m', 'json.tool'], 'returncode':2,'stdout':b'','stderr':无}
我试着到处寻找,但就是不能让它继续下去。非常感谢一些帮助。