3 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果有人仍在尋找答案,這就是它的完成方法
(cast(Values.value, db.String())=='"Employee"'))
以上是存儲(chǔ)在 JSONB 列中的字符串。請(qǐng)注意該過(guò)濾器中使用的引號(hào)。
(Values.value.contains([{"type":"examplecom"}]))
這個(gè)用于在 JSONB 列中搜索 JSON 數(shù)組

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
假設(shè)json對(duì)象是一個(gè)字符串,使用json.loads將其轉(zhuǎn)換為字典,然后正常索引。
>>> import json
>>> s = """[{"primary": true, "type": "work", "value": "rusr@r.com"}, {"primary": true, "type": "work", "value": "iu@n.com"}]"""
>>> my_dict = json.loads(s)
>>> my_dict[0]['type']
'work'
然后,您可以使用以下列表理解來(lái)搜索 type == 起作用的任何行。
>>> search = [i for i in my_dict if i['type'] == 'work']
>>> search
[{'primary': True, 'type': 'work', 'value': 'rusr@r.com'}, {'primary': True, 'type': 'work', 'value': 'iu@n.com'}]
這是一個(gè)不使用列表理解的相同事物的示例。
>>> search = list()
>>> for i in my_dict:
... if i['type'] == 'work':
... search.append(i)
...
>>> search
[{'primary': True, 'type': 'work', 'value': 'rusr@r.com'}, {'primary': True, 'type': 'work', 'value': 'iu@n.com'}]

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
我無(wú)法測(cè)試代碼,但你可以嘗試一下。
l = .filter(User_Values.value)
s = [[x for x in i if x['type'].astext=='work'] for i in l if isinstance(i, list)]
如果可以向我提供創(chuàng)建表的代碼,我可以進(jìn)行測(cè)試以提供更好的答案。如果這不是您想要的,請(qǐng)?zhí)崆氨浮?/p>
添加回答
舉報(bào)