如何在Json中搜索注册为数组的日期?

2024-04-19 16:03:54 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Json中搜索注册为数组的日期(PostgreSQL是DB。) 下面是相关代码

##### 1. Model #####
class Business(db.Model):
    __tablename__ = 'business'
    id = db.Column(db.Integer, primary_key=True)
    sales = db.Column(JSON)

##### 2. Data #####
id=1
sales={'time': ['10:00', '19:00']},

##### 3. View Query #####
# filter var
filter_val = request.json['filter']['value']
# basic query
bQuery = Business.query
# Filter query
if filter_val['sales']['time'][0]:
    bQuery = bQuery.filter(Business.sales['time'][0].astext.ilike('%' + filter_val['sales']['time'][0] + '%'))
if filter_val['sales']['time'][1]:
    bQuery = bQuery.filter(Business.sales['time'][1].astext.ilike('%' + filter_val['sales']['time'][1] + '%'))
# result query
business = bQuery.order_by(Business.id.desc()).paginate(pageCurrent, per_page=per_page, error_out=False)

Filter value: filter_val ['sales'] ['time'] [n]

Json array of table columns: business.sales ['time'] [n]

我在视图区域中创建了一个过滤器查询

筛选值['sales']['time'][0]~[1]

Business.sales['time'][0]~[1]必须完全相同,但它们将被搜索

但是,这不是我想要的日期搜索

我想要的是:

  1. 在由json组成的列中的数组中搜索筛选器值
  2. 所需的筛选器搜索条件为
    • Business.sales['time'][0]>;=筛选值['sales']['time'][0]
    • Business.sales['sales']['time'][1]<;=筛选值['sales']['time'][1]

有什么好办法吗? 我想知道一个简单的例子。谢谢你


Tags: idjsondbmodeltimecolumnval数组