IndexError: tuple index out of range postgresql
IndexError: tuple index out of range postgresql
我一直在使用 pgcrypto 扩展模块的摘要函数对几个值进行编码。我最近发现我尝试编码的一些 URL 值包含 '%,'
,它会抛出
IndexError: tuple index out of range.
我今天花了几个小时试图解决这个问题,但到目前为止我还没有更正我的代码中的这个错误。如何对包含特殊字符的 URL
进行编码?
这在 pgAdmin4
中有效,但在我的 python 脚本中无效:
encode(digest('domainname.com/pub-cgi/retrieve.pl?doc=file%2F1999&zone_19=300%2A%20','sha256')
如何对包含特殊字符的 URL 进行编码?
在对 Stack Overflow 进行更多研究后,我找到了一个多年前发布的解决方案。
Decode escaped characters in URL
这是我用来解决编码问题的代码:
# This section of code reformats a href with URL encoding
def unquote(url):
return re.compile('%([0-9a-fA-F]{2})',re.M).sub(lambda m: chr(int(m.group(1),16)), url)
# URL with encoding - https://www.somedomainname.com/pubs/retrieve.pl?doc=some%2Ddocument%2Dname.pdf
print (unquote('https://www.somedomainname.com/pubs/retrieve.pl?doc=some%2Ddocument%2Dname.pdf'))
# Output - https://www.somedomainname.com/pubs/retrieve.pl?doc=some-document-name.pdf
现在我已经重新格式化了这个 URL,我可以使用 pgcrypto 扩展模块的摘要函数来使用 SHA-256 散列进行编码。
encode(digest('https://www.somedomainname.com/pubs/retrieve.pl?doc=some-document-name.pdf','sha256')
特别说明: 我在对它们进行哈希处理之前从 URL 中删除了 href 协议,因为它可以防止重复,这是我的一个问题。
我一直在使用 pgcrypto 扩展模块的摘要函数对几个值进行编码。我最近发现我尝试编码的一些 URL 值包含 '%,'
,它会抛出
IndexError: tuple index out of range.
我今天花了几个小时试图解决这个问题,但到目前为止我还没有更正我的代码中的这个错误。如何对包含特殊字符的 URL
进行编码?
这在 pgAdmin4
中有效,但在我的 python 脚本中无效:
encode(digest('domainname.com/pub-cgi/retrieve.pl?doc=file%2F1999&zone_19=300%2A%20','sha256')
如何对包含特殊字符的 URL 进行编码?
在对 Stack Overflow 进行更多研究后,我找到了一个多年前发布的解决方案。
Decode escaped characters in URL
这是我用来解决编码问题的代码:
# This section of code reformats a href with URL encoding
def unquote(url):
return re.compile('%([0-9a-fA-F]{2})',re.M).sub(lambda m: chr(int(m.group(1),16)), url)
# URL with encoding - https://www.somedomainname.com/pubs/retrieve.pl?doc=some%2Ddocument%2Dname.pdf
print (unquote('https://www.somedomainname.com/pubs/retrieve.pl?doc=some%2Ddocument%2Dname.pdf'))
# Output - https://www.somedomainname.com/pubs/retrieve.pl?doc=some-document-name.pdf
现在我已经重新格式化了这个 URL,我可以使用 pgcrypto 扩展模块的摘要函数来使用 SHA-256 散列进行编码。
encode(digest('https://www.somedomainname.com/pubs/retrieve.pl?doc=some-document-name.pdf','sha256')
特别说明: 我在对它们进行哈希处理之前从 URL 中删除了 href 协议,因为它可以防止重复,这是我的一个问题。