使用uuid替换正则表达式搜索时,Python中最优雅的方法是什么?
re.sub(r'guid="([0-9a-f-]{36})"', uuid1(), contents)
由于此错误,上述声明失败:
TypeError: object of type 'UUID' has no len()
这是探讨lambda用法的适当方案吗?
答案 0 :(得分:5)
uuid.uuid1()
会返回uuid.UUID
个对象。 re.sub
的第二个参数需要可调用或字符串。在这种情况下,请将uuid1()
转换为字符串:str(uuid1())
:
re.sub(r'guid="([0-9a-f-]{36})"', str(uuid1()), contents)