Я пытаюсь использовать понимание списка, которое сравнивает строковые объекты, но одна из строк - 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.
EDIT: я использую Google App Engine, который использует Python 2.7
Здесь приведен более полный пример проблемы:
#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"]