2016-05-12 5 views
2

私はユニコード変数をuploadedといいます。これはユニコードで、Webリクエストから取得されます。値はu'Trueまたはu'Falseです。 trueかfalseかどうかを確認する必要がありますが、if uploaded:は常にTrueと評価されます。これをPythonでチェックする最良の方法は何ですか?ユニコードの値を確認するTrueまたはFalseのPython

+6

'アップロードされた場合== u" True "'についてはどうですか? –

+0

この回答は役に立ちました: http://stackoverflow.com/questions/21732123/convert-true-false-value-read-from-file-to-boolean – jano

答えて

7

あなたはリテラルテキスト'True'は、その文字列に含まれているかどうかを確認する必要があります、文字列値を持つ:

if uploaded == u'True': 

任意の非空の文字列オブジェクトは真実のテストで真とみなされるので、 文字列u'False'もtrueです!

また、ast.literal_eval() functionを使用すると、文字列の内容をPythonリテラルとして解釈できます。これはまた、他の種類をサポートしています:

import ast 

if ast.literal_eval(uploaded): 

ast.literal_eval(u'True')は、実際のブールTrueオブジェクトを返します、ast.literal_eval(u'False')はあなたの実際のFalse値を与えるだろう。

関連する問題