从标准输入读取时如何处理索引
How can I handle index when reading from stdin
我正在使用 bash 脚本并希望在 bash 函数中嵌入一个 Python 片段。
所以我得到了这个有效的 Python 片段,它只是从标准输入读取并解析它以获得条目的标题[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
得到这个索引错误:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
IndexError: list index out of range
似乎 root['entries'] 在这种情况下返回一个空列表..我不知道为什么。
感谢帮助
像这样执行得很好:
$ 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
)
我正在使用 bash 脚本并希望在 bash 函数中嵌入一个 Python 片段。
所以我得到了这个有效的 Python 片段,它只是从标准输入读取并解析它以获得条目的标题[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
得到这个索引错误:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
IndexError: list index out of range
似乎 root['entries'] 在这种情况下返回一个空列表..我不知道为什么。
感谢帮助
像这样执行得很好:
$ 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
)