在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.x版本中执行。 python 3.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)