我有一些产生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
答案 0 :(得分:0)
考虑使用uuid模块。它提供了以不同格式生成uuids的功能。 E.g:
>>> import uuid
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')
不同的uuid
- 函数返回的对象实现__str__
,因此要将它们转换为str
调用,例如str(uuid.uuid4())
。
但是,此模块生成的GUID不会按顺序增加,因为这不是常见的用例。为什么你希望你的GUID顺序增加?也许你需要一些不同的东西,或者反/ uuid的组合。