Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在Python3.x中执行curl命令是否有任何修改?_Python 3.x_Curl_Urllib_Urllib2_Python 2.x - Fatal编程技术网

Python 3.x 在Python3.x中执行curl命令是否有任何修改?

Python 3.x 在Python3.x中执行curl命令是否有任何修改?,python-3.x,curl,urllib,urllib2,python-2.x,Python 3.x,Curl,Urllib,Urllib2,Python 2.x,我在Python2.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 subpro

我在Python2.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版本中执行。 Python3.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)

这回答了你的问题吗?仅仅搜索名为“urllib2”的模块是不够的,我已经尝试过了,但在本例中,我已经在后端训练了rasa nlu模型,并尝试以json格式提取数据。我以这种方式更改了代码import urllib.request inputArg=告诉我有关新冠病毒数据的更多信息='{q:'+inputArg+',projects:ChatBot}'url=http://localhost:5055/parse request=urllib.request.Requesturl response=urllib.request.urlopenrequest data\u content=response.read printdata\u content得到以下错误:回溯最近的调用last:File code.py,第11行,in response=urllib.request.urlopenrequest File/usr/lib/python3.6/urllib/request.py,第223行,在urlopen return opener.openurl中,data,timeout File/usr/lib/python3.6/urllib/request.py,第524行,在open req=methreq File/usr/lib/python3.6/urllib/request.py,第1255行,在do_request_uuuutypeerrormsg TypeError中:POST数据应该是字节、字节的一个iterable或文件对象。它不能是str类型。