我是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