我是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
但是,我需要搜索订单名称的小写和全大写版本。例如,当我输入阿斯匹林时,我得到一个单独的顺序数组,而不是我输入阿斯匹林时。我尝试将|或操作数添加到all caps版本中,但没有效果。以下是我所拥有的:
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
你知道我做错了什么吗? 提前谢谢
为什么不在python中使用“or”not“|”,顺便说一句python有一个filter函数,这样您也可以这样做呢
filter(function, iterable)
filter(lambda x: x['PRIMARY_MNEMONIC'].lower() == order.lower(), data)
假设数据是一个字典
x | x.upper()
就太奇怪了相关问题 更多 >
编程相关推荐