文字列オブジェクトを比較するリスト内包を使用しようとしていますが、文字列の1つはjson.loadsの副産物であるutf-8です。シナリオ:ユニコードタイプをPythonの文字列と比較するにはどうすればよいですか?
us = u'MyString' # is the utf-8 string
私の質問の第1部は、なぜこのFalseを返しますか? :
us.encode('utf-8') == "MyString" ## False
パート2 - リスト内でどのように比較できますか?
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は私に真実を返します。 – karthikr
も私のためにTrueを返します、あなたはpython3ですか? – cmd
[in python3](http://ideone.com/F3BI7d) – Eric