1

我有一些生成 RSS 提要的代码,现在格式中的一个错误是 GUID 没有增加,或者不是唯一的数字。编写RSS的代码如下:

    rss_start="""<?xml version="1.0" encoding="ISO-8859-1" ?>
        <rss version="2.0" ">

            <channel>
                <title>Your title</title>
                <link></link>
                <description>Your discription</description>

    """

    rss_end="""

            < href="" rel="self" type="application/rss+xml" />
            </channel>
        </rss> """

    def description(item):
        return item

    def title(item):
        return item.split('\n')[0]

    def link(item):
        return '' + item.split('\n')[0]

    for counter, item in enumerate(inp):
        if item:
            rss_items.append("""
                    <item>
                        <title>%s</title>
                        <link>%s</link>
                        <description>%s</description>
                        <guid>counter</guid>
                    </item>""" % (title(item),link(item),description(item)))

    rss_output=rss_start+''.join(rss_items)+rss_end

任何能引导我朝着正确方向产生顺序增加的 GUID 的提示方法或评论将不胜感激。

谢谢 SM

4

1 回答 1

0

考虑使用uuid模块。它提供了生成不同格式的 uuid 的功能。例如:

>>> import uuid
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

不同函数返回的对象uuid实现__str__,因此将它们转换为str调用,例如str(uuid.uuid4())

但是,此模块生成的 GUID 不会按顺序增加,因为这不是常见的用例。为什么您希望您的 GUID 顺序增加?也许你在这里需要一些不同的东西,或者计数器 / uuid 的组合。

于 2013-06-16T19:22:59.723 回答