我是python的新手,並且正在使用它來過濾來自服務器端的數據以用於圖形的前端。我需要從一個給定的名字,我可以用這個代碼做成功篩選訂單:使用python「或」過濾名稱或命令以查找名稱的全部小寫和全部大寫版本
def get_filteres_orders(dataset_id, order):
data = dt.get(dataset_id).aslist()
filtered_data = [x for x in data if x['PRIMARY_MNEMONIC'] ==
order ]
filtered_data.sort(key=lambda x: to_data_time(x['ORDER_DTM']), reverse=True)
return filtered_data
不過,我需要尋找小寫和訂單的名字全部大寫版本兩者。例如,當我輸入ASPIRIN時,與輸入阿司匹林時相比,我得到了一個單獨的命令數組。我試圖添加|或操作數來說明所有大寫版本,但它不起作用。這裏是我有什麼:
def get_filteres_orders(dataset_id, order):
data = dt.get(dataset_id).aslist()
#filtered_data = [x for x in data if x['PRIMARY_MNEMONIC'] == order ]
#filtered_data = [x for x | x.upper() for x in data if x['PRIMARY_MNEMONIC']
== order ]
filtered_data = [x | x.upper() for x in data if x['PRIMARY_MNEMONIC'] ==
order ]
filtered_data.sort(key=lambda x: to_data_time(x['ORDER_DTM']), reverse=True)
return filtered_data
任何想法我在做什麼錯在這裏? 提前謝謝!
你可以指定你的意思是什麼「沒有按沒有工作「?你會得到什麼結果?你有錯誤嗎? 「數據」是什麼類型的數據結構?這是一本字典清單嗎?自定義對象類型的列表? – dlasalle
您必須規範化數據輸入。即,所有數據必須以小寫或大寫格式。這將解決你的排序問題。 – mootmoot
@dlasalle你絕對正確的「不起作用」是有點模糊。我得到一個內部服務器錯誤(500)。它說它來自我的ajax文件。我非常積極的,這是由於嘗試過濾/我缺乏Python知識的語法錯誤,因爲當我訴諸回到第一個過濾器功能,它工作正常。服務器正在使用名爲phovea的框架,但是數據是從csv文件中獲取的,並從phovea服務器導入。 – jrogers12