问题描述
我正在尝试运行以下代码,并遇到一些奇怪的错误...想知道是否有人可以提供帮助!
import Feedparser
from dataclasses import dataclass,field
from typing import Dict
@dataclass
class NewsParser:
shipping_news: str = "shippingurlgoeshere"
all_shipping_news: Dict = field(default_factory=lambda: {
'shipping news': "shippingurlgoeshere"
})
@classmethod
def parse_Feed(cls):
"""
Parses a news Feed for relevant @R_333_4045@ion.
:return: relevant_items_as_dictionary,dictionary (unsurprisingly) which contains lists of the relevant items.
"""
# Get articles from Feed
content = Feedparser.parse(cls.all_shipping_news["shipping news"])
articles = content.entries
# Parse Feed
titles = [x.title for x in articles]
urls = [x.link for x in articles]
pub_date_string = [x.published for x in articles]
pub_date_tuple = [x.published_parsed for x in articles]
html_summaries = [x.summary for x in articles]
relevant_items_as_dictionary = {"titles": titles,"urls": urls,"pub_date_string": pub_date_string,"pub_date_tuple": pub_date_tuple,"html_summaries": html_summaries}
return relevant_items_as_dictionary
NewsParser.parse_Feed()
这给我一个错误AttributeError:类型对象'NewsParser'没有属性'all_shipping_news'
但是如果我注释掉NewsParser.parse_Feed()
并在实例化后仅打印NewsParser
,我会得到正确的结果:
NewsParser(shipping_news ='shippingurlgoeshere',all_shipping_news = {'shipping news':'shippingurlgoeshere'})
但是,如果我写的不是cls.all_shipping_news
,而是写NewsParser.all_shipping_news
。
最后一个难题...如果在parse_Feed方法中我写了cls.shipping_news
,那么它可以完美地访问shipping_news字符串,但是如上所述,当我写cls.all_shipping_news
时不会发生这种情况>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)