Python 全球名称';解析错误';没有定义,我使用了try和except来避免它,但它仍然显示出来
它发生在带有except ParseError的行中,我不理解,因为我写这行是为了避免这个错误。这是我的密码Python 全球名称';解析错误';没有定义,我使用了try和except来避免它,但它仍然显示出来,python,django,Python,Django,它发生在带有except ParseError的行中,我不理解,因为我写这行是为了避免这个错误。这是我的密码 import json from goose import Goose DEFAULT = 'https://images.unsplash.com/photo-1427435150519-42d9bcd0aa81?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&w=1080&fit=max&s=10d1c
import json
from goose import Goose
DEFAULT = 'https://images.unsplash.com/photo-1427435150519-42d9bcd0aa81?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&w=1080&fit=max&s=10d1cfc208c8ed5ed1160e851eabce1d'
def extract(url):
g = Goose()
try:
article = g.extract(url=url)
if article.top_image is None:
return DEFAULT
else:
if article.top_image.src is None:
return DEFAULT
else:
resposne = {'image':article.top_image.src}
return article.top_image.src
except ParseError:
if can_handle():
handle_exception()
else:
print("couldn't handle exception: url={0}".format(url))
raise
我主要是想避免这个错误,如果我得到这个错误,我只想显示默认图像。我错过了什么
在这里;这是我的回溯
Traceback:
File "/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
34. return bound_func(*args, **kwargs)
File "/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
22. return view_func(request, *args, **kwargs)
File "/local/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
30. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/home/younggue/Desktop/ebagu0.2/rclone/main/views.py" in dispatch
172. return super(PostCreateView, self).dispatch(request, *args, **kwargs)
File "/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "/local/lib/python2.7/site-packages/django/views/generic/edit.py" in post
249. return super(BaseCreateView, self).post(request, *args, **kwargs)
File "/local/lib/python2.7/site-packages/django/views/generic/edit.py" in post
215. return self.form_valid(form)
File "main/views.py" in form_valid
165. self.object.image = extract(self.object.url)
File "main/util/media.py" in extract
18. except ParseError:
Exception Type: NameError at /add_post/
Exception Value: global name 'ParseError' is not defined
当我试图从文件列表加载文件时,我遇到了同样的错误。在@Sayse的评论之后,在运行代码之后,我在堆栈跟踪中找到了
lib/site-packages/pandas/io/parsers.py
要更正该问题,必须从定义该错误的文件中导入该错误。就我而言,我使用
import pandas as pd
#~~~~~~~~~~ Solution: import the error ~~~~~~~~~~
from pandas.io.parsers import ParserError
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
for fname in fnames:
try:
df = pd.read_csv(fname)
except ParserError:
logger.info(f'Skipping incompatible file: {fname}')
我认为你必须从goose import*或从goose import goose编写
,ParseError
@DazedMiddle嗯,我认为这不是正确的解决方案…高度怀疑ParseError来自gooseDon我不认为有内置的ParseError
异常,我只知道xml.etree.ElementTree.ParseError
出现错误是因为您的异常处理。。。但你真正想抓住的例外是什么?您希望抛出什么ParseError
?因为它是一个不存在的类,所以当前可以删除整个异常块来触发错误,并在堆栈跟踪中查找错误的完整名称空间,然后从那里导入它。