Próbuję użyć rozumienia list, które porównuje obiekty ciąg, ale jeden z ciągów jest utf-8, produkt uboczny json.loads. Scenariusz:Jak mogę porównać typ Unicode z ciągiem w python?
us = u'MyString' # is the utf-8 string
Część pierwsza mojego pytania brzmi: dlaczego to zwraca Fałsz? :
us.encode('utf-8') == "MyString" ## False
Część druga - jak mogę porównać ze zrozumieniem listy?
myComp = [utfString for utfString in jsonLoadsObj
if utfString.encode('utf-8') == "MyString"] #wrapped to read on S.O.
EDIT: używam Google App Engine, który wykorzystuje Pythona 2.7
Oto bardziej kompletny przykład problemu:
#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"]
część 1 zwraca mi prawdę. – karthikr
zwraca także True dla mnie, czy jesteś w python3? – cmd
[W python3] (http://ideone.com/F3BI7d) – Eric