Python 3.6:Feedparser 获取子属性的问题
Python 3.6: Feedparser issue getting sub-attributes
我正在使用 feedparser
读取工作正常的 XML 提要,我可以遍历任何一级属性,但我无法访问一级以下的任何内容。
例如,我无法从 links
.
中提取任何属性
非常感谢任何帮助。
代码
import feedparser
feed = feedparser.parse("https://dev.test.com/feed.xml")
for post in feed.entries:
print(post.title) # Works
print(post.links.rel) # Doesn't work
print(post.links[0].rel # Doesn't work
来自 post 变量的输出
{
'title': 'test title of article'
, 'links': [
{
'rel': 'alternate'
, 'type': 'text/html'
, 'href': 'http://dev.test.com/test-link'
}
, {
'length': '0'
, 'type': 'image/jpeg'
, 'href': 'http://dev.test.com/test-link.jpg'
, 'rel': 'enclosure'
}
]
, 'link': 'http://dev.test.com/test-link'
, 'published': 'Tue, 10 Oct 2017 19:21:00 +0100'
}
.rel
和 ['rel']
都应该有效:
>>> import feedparser
>>> feed = feedparser.parse('https://lwn.net/headlines/newrss')
>>> feed.entries[0].links[0].rel
'alternate'
>>> feed.entries[0].links[0]['rel']
'alternate'
因为条目的类型是FeedParserDict
:
>>> type(feed.entries[0].links[0])
<class 'feedparser.FeedParserDict'>
实现了 __getattr__
,参见:help(feed.entries[0].links[0])
。
我正在使用 feedparser
读取工作正常的 XML 提要,我可以遍历任何一级属性,但我无法访问一级以下的任何内容。
例如,我无法从 links
.
非常感谢任何帮助。
代码
import feedparser
feed = feedparser.parse("https://dev.test.com/feed.xml")
for post in feed.entries:
print(post.title) # Works
print(post.links.rel) # Doesn't work
print(post.links[0].rel # Doesn't work
来自 post 变量的输出
{
'title': 'test title of article'
, 'links': [
{
'rel': 'alternate'
, 'type': 'text/html'
, 'href': 'http://dev.test.com/test-link'
}
, {
'length': '0'
, 'type': 'image/jpeg'
, 'href': 'http://dev.test.com/test-link.jpg'
, 'rel': 'enclosure'
}
]
, 'link': 'http://dev.test.com/test-link'
, 'published': 'Tue, 10 Oct 2017 19:21:00 +0100'
}
.rel
和 ['rel']
都应该有效:
>>> import feedparser
>>> feed = feedparser.parse('https://lwn.net/headlines/newrss')
>>> feed.entries[0].links[0].rel
'alternate'
>>> feed.entries[0].links[0]['rel']
'alternate'
因为条目的类型是FeedParserDict
:
>>> type(feed.entries[0].links[0])
<class 'feedparser.FeedParserDict'>
实现了 __getattr__
,参见:help(feed.entries[0].links[0])
。