【发布时间】:2013-05-04 11:50:01
【问题描述】:
我正在尝试使用比较字符串对象的列表理解,但其中一个字符串是 utf-8,它是 json.loads 的副产品。场景:
us = u'MyString' # is the utf-8 string
我的问题之一是,为什么这会返回 False? :
us.encode('utf-8') == "MyString" ## False
第二部分 - 如何在列表理解中进行比较?
myComp = [utfString for utfString in jsonLoadsObj
if utfString.encode('utf-8') == "MyString"] #wrapped to read on S.O.
编辑:我使用的是使用 Python 2.7 的 Google App Engine
这里有一个更完整的问题示例:
#json coming from remote server:
#response object looks like: {"number1":"first", "number2":"second"}
data = json.loads(response)
k = data.keys()
I need something like:
myList = [item for item in k if item=="number1"]
#### I thought this would work:
myList = [item for item in k if item.encode('utf-8')=="number1"]
【问题讨论】:
-
第 1 部分对我来说是真实的。
-
对我来说也返回 True,你在 python3 中吗?
-
您在寻找
us.decode('utf-8')吗? json 不为您处理 unicode 解析吗?你想做什么? -
我将添加更完整的代码以准确显示正在发生的事情。
标签: python unicode python-2.7 list-comprehension