2013-07-18 33 views
-2

爲什麼我不能在我的情況下使用字符串比較?我在Python工作。Str to str比較

myjson =字典

if myjson[row]['languages'] == '' | myjson[row]['languages'] == 'english': pass 
else: gen_dict['languages'].append(myjson[row]['languages']) 

的列表錯誤:

Traceback (most recent call last): 
    File "/private/var/folders/jv/9_sy0bn10mbdft1bk9t14qz40000gn/T/Cleanup At Startup/gc_all_del_dup.txt-395854237.266.py", line 157, in <module> 
    gen_nondup(f_l) 
    File "/private/var/folders/jv/9_sy0bn10mbdft1bk9t14qz40000gn/T/Cleanup At Startup/gc_all_del_dup.txt-395854237.266.py", line 132, in gen_nondup 
    if myjson[row]['languages'] == '' | myjson[row]['languages'] == 'english': pass 
TypeError: unsupported operand type(s) for |: 'str' and 'str' 
+1

因爲'|'是按位還是可能?你可能想再次閱讀Python教程,你會繼續陷入對語法的誤解。 –

+0

正式注意到了這個問題。字典錯誤令人震驚,但我解釋了爲什麼我被絆倒了。而且我認爲解決這個問題更可能是一杯咖啡來喚醒我。至於這個,不知道有人在我認爲是類型問題或某事時指出語法錯誤有什麼問題。 – goldisfine

+1

我可以看到錯誤信息令人困惑,特別是當它應該真正閱讀時:* +++超出咖啡因錯誤+++重新從開始+++ * :-) –

回答

4

您應該使用or|or是邏輯或,|str不支持的位操作符。

而且我推薦使用:if myjson[row]['languages'] in ['', 'english']: pass,它稍微快一點,並且易於擴展。

相關問題