如何比较unicode类型和python中的字符串?

如何比较unicode类型和python中的字符串?,第1张

如何比较unicode类型和python中的字符串

您必须遍历错误的数据集。只需直接在JSON加载的字典上循环,就不需要先调用

.keys()

data = json.loads(response)myList = [item for item in data if item == "number1"]

您可能要使用

u"number1"
以避免在Unipre和字节字符串之间进行隐式转换:

data = json.loads(response)myList = [item for item in data if item == u"number1"]

两种版本都 可以正常工作

>>> import json>>> data = json.loads('{"number1":"first", "number2":"second"}')>>> [item for item in data if item == "number1"][u'number1']>>> [item for item in data if item == u"number1"][u'number1']

请注意,在您的第一个示例中,

us
不是
UTF-8字符串。它是unipre数据,该
json
库已经为您解码了。另一方面,UTF-8字符串是序列 编码的bytes
。您可能需要阅读Unipre和Python来了解它们之间的区别:

  • 每个软件开发人员绝对,肯定必须绝对了解Unipre和字符集(无借口!)作者:Joel Spolsky

  • 在Python的Unipre指南

  • Ned Batchelder的实用Unipre

在Python 2上,您期望测试返回的

True
结果正确无误,但您做错了其他事情:

>>> us = u'MyString'>>> usu'MyString'>>> type(us)<type 'unipre'>>>> us.enpre('utf8') == 'MyString'True>>> type(us.enpre('utf8'))<type 'str'>

没有 必要将字符串编码成UTF-8进行比较; 改用unipre文字:

myComp = [elem for elem in json_data if elem == u"MyString"]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存