我正在使用 Python 3 并尝试连接到dstk
。我收到错误urllib
包裹。
我对SO进行了很多研究,但找不到与这个问题类似的东西。
api_url = self.api_base+'/street2coordinates'
api_body = json.dumps(addresses)
#api_url=api_url.encode("utf-8")
#api_body=api_body.encode("utf-8")
print(type(api_url))
response_string = six.moves.urllib.request.urlopen(api_url, api_body).read()
response = json.loads(response_string)
如果我不编码api_url
and api_body
我得到以下信息:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1247, in do_request_
raise TypeError(msg)
TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.
但是如果我尝试将它们编码为utf-8
(取消注释行)然后我收到以下错误:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 514, in open
req.data = data
AttributeError: 'bytes' object has no attribute 'data'
这对我来说似乎是一个循环错误,我无法解决它。我确实尝试从 SO 方面制定解决方案,将其更改为json.load
等等,但似乎没有任何作用。