数据集操作的Python方法

数据集操作的Python方法,python,Python,伙计们,我们有以下问题:我们有几个包含表数据的对象,看起来像这样: {'field1':'value1','field2':'value2',…} 在运行时的某个时刻,我们需要以查询DB的相同方式从这些对象(表)中“选择”数据(即,在该集合中获取与field1==some_值和field2==some_other_值匹配的记录)。我们无法访问原始的RDBMS或db视图。我们胡乱考虑使用中间数据库(如sqlite),然后根据需要查询数据 但是,仅仅为了数据集查询的目的而在应用程序中添加另一个移动部

伙计们,我们有以下问题:我们有几个包含表数据的对象,看起来像这样:

{'field1':'value1','field2':'value2',…}

在运行时的某个时刻,我们需要以查询DB的相同方式从这些对象(表)中“选择”数据(即,在该集合中获取与field1==some_值和field2==some_other_值匹配的记录)。我们无法访问原始的RDBMS或db视图。我们胡乱考虑使用中间数据库(如sqlite),然后根据需要查询数据

但是,仅仅为了数据集查询的目的而在应用程序中添加另一个移动部件,感觉很“难闻”。所以,我的问题是:有没有一种类似蟒蛇的方法来解决这个问题?我们是否应该咬紧牙关,将数据推送到数据库,查询数据库,然后删除?提前感谢您的意见和投入


数据是一个字典列表。

如果您只需要一些类型为
some\u field==some\u value
的简单查询,则不需要数据库。假设您的数据是词典列表,则可以使用列表筛选数据:

[x for x in data if x["field1"] == some_value]

如果只需要一些类型为
some\u field==some\u value
的简单查询,则不需要数据库。假设您的数据是词典列表,则可以使用列表筛选数据:

[x for x in data if x["field1"] == some_value]

假设数据对象位于列表中,则可以使用。举个简单的例子:

filter(lambda x: x["fld1"] == "val1" and x["fld2"] == "val2", listOfObjects)

这将返回一个仅包含满足lambda函数中指定条件的对象的列表。对于更复杂的查询,您可以创建自己的函数(只要它返回布尔值)。

假设数据对象在列表中,您可以使用。举个简单的例子:

filter(lambda x: x["fld1"] == "val1" and x["fld2"] == "val2", listOfObjects)
这将返回一个仅包含满足lambda函数中指定条件的对象的列表。对于更复杂的查询,您可以创建自己的函数(只要它返回布尔值)。

def一个(可选):
返回lambda val:val在备选方案中
def内(frm,to):
返回lambda val:frm
def一个(可选):
返回lambda val:val在备选方案中
def内(frm,to):

return lambda val:frm Yes我们的数据是一个字典列表。你的建议可能适用于我们的一些案例。但我认为,如果同时处理两个以上的词典并合并结果,则不起作用。是的,我们的数据是一个词典列表。你的建议可能适用于我们的一些案例。但我认为,如果同时处理两个以上的词典并合并结果,则不起作用。有趣。好主意,很有趣。好主意。