我正在使用python生成rss文件,但是当我调用此方法时,它会发出错误“TypeError: writeRssFile() takes exactly 0 arguments (1 given)
”
#!/usr/bin/env python2
# encoding: utf-8
import os,PyRSS2Gen
def writeRssFile(*newslist):
item =[]
for i in range(0,len(newslist)):
item.append(PyRSS2Gen.RSSItem(
title = newslist[i].get('title'),
description = newslist[i].get('content'),
pubDate = datetime.datetime.now()))
rss = PyRSS2Gen.RSS2(
title = "Andrew's PyRSS2Gen feed",
link = "http://www.dalkescientific.com/Python/PyRSS2Gen.html",
description = "The latest news about PyRSS2Gen, a "
"Python library for generating RSS2 feeds",
lastBuildDate = datetime.datetime.now(),
items = item[:],
)
rss.write_xml(open("pyrss2gen.xml", "w"))
我希望像这样调用这个方法:
newslist=[{'title':'title1','content':'content1'},{'title':'title2','content':'content2'}]
writeRssFile(newslist)
我曾尝试谷歌搜索,但我不是很确定究竟是什么原因,所以希望能从这里得到帮助。 谢谢!
答案 0 :(得分:1)
您接受可变数量的参数。因此,您需要在调用时解压缩列表,如此
writeRssFile(*newslist)
此外,您需要导入datetime
模块。
除此之外,当range
实际从0
开始时,您可以省略它。所以,
range(0, len(newslist))
与
相同range(len(newslist))