从标准输入中读取时如何处理索引

时间:2018-10-08 01:09:08

标签: python bash rss feedparser

我正在使用bash脚本,并且想将Python片段嵌入bash函数中。

所以我得到了这个有效的Python代码段,该代码段简单地从stdin读取并进行解析以获取条目的标题[0]:

import feedparser, sys
root = feedparser.parse(sys.stdin.read())
print root['entries'][0].title

一切似乎都很好:

$ curl -sf https://feedforall.com/sample.xml | python xmlparser.py
RSS Solutions for Restaurants

以这种方式执行时会发生IndexError:

$ curl -sf https://feedforall.com/sample.xml | python - <<EOF
import feedparser, sys
root = feedparser.parse(sys.stdin.read())
print root['entries'][0].title
EOF

收到此IndexError:

Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
IndexError: list index out of range

在这种情况下,好像root ['entries']正在返回一个空列表。.我不知道为什么。

感谢帮助

1 个答案:

答案 0 :(得分:0)

像这样很好地执行:

$ curl -sf https://feedforall.com/sample.xml | python <( cat <<EOF
import feedparser, sys
root = feedparser.parse(sys.stdin.read())
print root['entries'][0].title
EOF
)