gpt4 book ai didi

python - 将字符串与适用于 Python 2 和 3 的字节进行比较

转载 作者:太空狗 更新时间:2023-10-30 02:09:16 24 4
gpt4 key购买 nike

<分区>

在 Python 2 和 Python 3 中比较字符串对象和字节对象的最佳方法是什么?更一般地说,如何编写两个对象的 Python 2 和 Python 3 兼容比较,这两个对象可能都是字符串、字节或 Unicode 对象?假设数据已使用 UTF-8 编码(对于字节)或可编码(对于字符串)。

问题是 "asdf"== b"asdf" 在 Python 2 中为 True 而在 Python 3 中为 False。

同时,不能盲目地对对象进行编码或解码,因为 Python 2 中的字符串同时具有 encodedecode 方法,而 Python 3 中的字符串只有 encode 方法。

最后,isinstance(obj, bytes) 在 Python 2 中为任何非 unicode 字符串返回 True,在 Python 3 中仅为 bytes 对象返回 True。


版主注意事项:对于为什么需要这个问题(即解决什么实际问题)存在一些困惑。引发这个问题的特定问题是如何与在 Python 2 和 Python 3 之间更改其返回类型(从字符串到字节)的库进行交互。我需要一个与两者兼容的解决方案以促进升级代码库从一个到另一个问题,尽管这也可能与仍然希望具有 Python 2 兼容性的下游库有关。除了针对已知有效负载进行相等性测试之外,我不需要对返回做任何事情,因此问题只是关于相等性测试。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com