TypeError:正好取0个参数(给定1个)

时间:2014-04-08 04:03:04

标签: python rss

我正在使用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)

我曾尝试谷歌搜索,但我不是很确定究竟是什么原因,所以希望能从这里得到帮助。 谢谢!

1 个答案:

答案 0 :(得分:1)

您接受可变数量的参数。因此,您需要在调用时解压缩列表,如此

writeRssFile(*newslist)

此外,您需要导入datetime模块。

除此之外,当range实际从0开始时,您可以省略它。所以,

range(0, len(newslist))

相同
range(len(newslist))