Difflib 在未更改的标签上抛出错误

问题描述

我在使用 difflib 时遇到了一个奇怪的问题。我试图找出两个 url 之间的差异,按列表中的 html 标签分组。这适用于 html 的一个子集——如果有实际更改,或者标签不存在——但在没有更改时不起作用。例如,我抓取的两个 URL 具有相同的标签。如果没有更改,我希望它给我一个空列表并继续前进,但它会抛出一个错误错误通常是它不能对字符串以外的类型执行任何操作)。

我试图通过将 difflist 包装在一个字符串中来纠正这个问题,但这会产生一个完全空的列表。我还尝试检查类型是否为字符串,但仍然无效——问题似乎出在这一行:

microsoft.com

预先感谢您的帮助!

 changes = [change for change in difflist if change.startswith('-') or change.startswith('+')]

解决方法

啊,想通了——必须进入每个列表,将其拆分,然后将每个项目转换为字符串:

$sessionId = openssl_decrypt($payload['value'],'AES-256-CBC',$key,$iv);