首页 > 解决方案 > 在 python 3.x 中执行 curl 命令是否有任何修改?

问题描述

我在 python 2.x 版本中有一个可运行的代码,用于以下 shell 命令:

curl -XPOST localhost:5055/parse -d '{"q":"tell me about more info on covid", "projects": "ChatBot"}'

python 2.x 的脚本如下:

import shutil
import sys
import urllib2
import subprocess
import json
import subprocess, sys
import os, time
import string
import os.path
import os, glob
from datetime import datetime

inputArg="tell me about more info on covid"
data = '{"q":"' + inputArg + '", "projects":"ChatBot"}'
url = 'http://localhost:5055/parse'
req = urllib2.Request(url, data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)

但是当在 Python 3.x 版本中执行相同的脚本时:

它给出如下错误:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    import urllib2
ModuleNotFoundError : No module named 'urllib2'

标签: python-3.xcurlurlliburllib2python-2.x

解决方案


我在不使用 urllib.request 的情况下找到了解决此问题的方法:

$ cat test6.py
import requests
import json
inputArg="tell me about more info on covid"
data = {"q":inputArg , "projects":"ChatBot"}
params = json.dumps(data)
url = 'http://localhost:5055/parse'
r = requests.post(url, data=params)
print(r.text)
print(r.status_code, r.reason)

推荐阅读