gpt4 book ai didi

数据集操作的 Python 方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:40 24 4
gpt4 key购买 nike

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

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

在运行时的某个时候,我们需要从这些对象(表)中“选择”数据,其方式与查询数据库的方式相同(即获取此集合中匹配 field1 == some_value 和 field2==some_other_value 的记录) .我们无权访问原始 RDBMS 或数据库 View 。我们摆弄了使用中间数据库(如 sqlite)然后根据需要查询数据的想法。

但仅出于数据集查询目的向应用程序添加另一个移动部分感觉“很臭”。所以,我的问题是:有没有一种 pythonic 的方法来解决这个问题?我们是否应该硬着头皮将数据推送到数据库,查询数据库,然后删除?预先感谢您的意见和意见。

数据是字典列表。

最佳答案

def one_of(alternatives):
return lambda val: val in alternatives

def within(frm, to):
return lambda val: frm <= val <= to

def gte(const):
return lambda val: val >= const

def lte(const):
return lambda val: val <= const

def exact(const):
return lambda val: val == const


def select(data, **kwargs):
for item in data:
if all(chk(item[key]) for key, chk in kwargs.items()):
yield item

data = [
{'id': 1, 'name': 'Ann', 'age': 25},
{'id': 2, 'name': 'Tom', 'age': 10},
{'id': 3, 'name': 'John', 'age': 40},
{'id': 4, 'name': 'Tom', 'age': 18},
]

for person in select(data, age=gte(15), id=within(3, 4), name=exact('Tom')):
print person['name']

关于数据集操作的 Python 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10919564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com