为什么我不能将 ValueError 消息与 urllib 模块中的字符串进行比较?
Why i can't compare ValueError message with string in urllib module?
在python3中:
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
try:
req = Request("wrong url")
except ValueError as e:
if e == "unknown url type: 'wrong url'" :print("bad url")
为什么我的 python 控制台没有 bad url
输出?
无法将 ValueError 消息与字符串
进行比较
1.Think你告诉我'str(e)'
2.It 是 "unknown url type: 'wrong url'" 而不是 "unknown url type: wrong url" ,我已经在我的控制台上测试过了。
您正在将异常对象与字符串进行比较
您应该与 str(e)
进行比较以获得匹配,例如
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
try:
req = Request("wrong url")
except ValueError as e:
if "unknown url type" in str(e) :
print("bad url")
行
if "unknown url type" in str(e) :
考虑 python 3.x 版本之间返回字符串的差异。
你应该先把它传给str
:
if str(e) == "unknown url type: 'wrong url'" :
在python3中:
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
try:
req = Request("wrong url")
except ValueError as e:
if e == "unknown url type: 'wrong url'" :print("bad url")
为什么我的 python 控制台没有 bad url
输出?
无法将 ValueError 消息与字符串
1.Think你告诉我'str(e)'
2.It 是 "unknown url type: 'wrong url'" 而不是 "unknown url type: wrong url" ,我已经在我的控制台上测试过了。
您正在将异常对象与字符串进行比较
您应该与 str(e)
进行比较以获得匹配,例如
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
try:
req = Request("wrong url")
except ValueError as e:
if "unknown url type" in str(e) :
print("bad url")
行
if "unknown url type" in str(e) :
考虑 python 3.x 版本之间返回字符串的差异。
你应该先把它传给str
:
if str(e) == "unknown url type: 'wrong url'" :