【发布时间】:2021-09-18 08:32:19
【问题描述】:
我在 Windows 命令行提示符下运行 curl 命令。它产生json 输出。该命令如下所示:
curl --data "action=details&user=user&project=project1&problemid=2021" https://website:9020/
我在 python 中发出相同的命令如下:
import subprocess
output = subprocess.run(
[
"curl",
"--data",
"\"action=details&user=user&project=project1&problemid=2021\""
"https://website:9020/",
],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
shell=True,
)
print(output.stdout.decode("utf-8"))
输出如下:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 199 100 64 100 123 64 123 0:00:01 --:--:-- 0:00:01 1254
{"status":400,"message":"Action parameter is missing"}
但是命令行会产生一个 json 输出。然而,通过subprocess.run 发出的相同命令会产生此错误。我还用subprocess.Popen 和subprocess.check_output 进行了尝试。同样的问题仍然存在。我在这里做错了什么导致此错误?
【问题讨论】:
标签: python python-3.x curl subprocess