如何在 tortoise-orm 內使用 JSON_EXTRACT

先說結論:
# 假設 JsonField 名稱為 data,內容為 {"info": {"path": "我的資源創建"}}
qs = qs.filter(data__filter={"info.path": "我的資源創建"})

我查看了?tortoise-orm 官方文檔,沒有這方面講述。

問了 gpt4o,一直在兩個錯誤答案之間左右橫跳。

bing搜索,只找到一個使用 CustomFunction 派生類的解決方法。

最后自己看源碼,發現 contrib.mysql.json_functions 內有實現,實現為自定義 operator,使用方法在 tortoise.filters.get_json_filter() 函數內定義:f"{field_name}__filter"

試驗了下列調用方式:

qs.filter(data__filter={"key": "$.info.path", "value": "我的資源創建"}) # ((key, filter_value),) = value.items() 運行錯誤

qs.filter(data__filter={"$.info.path": "我的資源創建"}) # 使用 str(qs.query) 發現多了一個 "$."

最后試出了上面最終的表達式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921571.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921571.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921571.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

西門子S7-200 SMART PLC:編寫最基礎的“起保停”程序

一、什么是“起保停”電路?“起保停”是“啟動-保持-停止”的簡稱,也稱為“自鎖電路”。它是繼電器控制系統和PLC程序中最基本、最核心的控制邏輯。啟動 (Start): 由一個點動按鈕(常開觸點)觸發,使設備運行。保持 (H…

漏洞修復 Nginx SSL/TLS 弱密碼套件

掃描結果 [rootlocalhost nmap]# docker run --rm -v $(pwd)/results:/results securecodebox/nmap nmap --script ssl-enum-ciphers -p 443 xxx.cn -oX /results/output_0904.xml Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-04 05:02 UTC Nmap scan report for xxx.…

ChartGPT深度體驗:AI圖表生成工具如何高效實現數據可視化與圖表美化?

最近幫運營同事做季度數據報告時,我差點在圖表樣式上栽跟頭 —— 明明數據都算好了,用 Excel 調柱狀圖的顏色、字體、坐標軸標簽,來回改了快半小時,要么字體太大擠在一起,要么顏色搭配顯臟,運營催得急&…

深入理解 JVM 字節碼文件:從組成結構到 Arthas 工具實踐

在 Java 技術體系中,JVM(Java 虛擬機)是實現 “一次編寫,到處運行” 的核心。而字節碼文件作為 Java 代碼編譯后的產物,是 JVM 執行的 “原材料”。今天,我們就從字節碼文件的組成結構講起,再結…

SoundSource for Mac 音頻控制工具

SoundSource for Mac 是一款音頻控制工具,中文常被稱為 音頻源管理器。它能夠精確控制系統與應用程序的音量、輸出設備和音效處理,讓用戶獲得比 macOS 原生更靈活的音頻管理體驗。SoundSource 既適合音樂發燒友,也適合日常辦公和影音娛樂用戶…

云平臺面試內容(二)

5. VPC、子網、路由、NAT網關、安全組、網絡ACL 區別與網絡隔離設計 概念區別: VPC(虛擬私有云): VPC是在公有云上劃分出的一個用戶專屬的虛擬網絡環境,相當于用戶在云上的私有數據中心。用戶可以自定義VPC的IP地址段、路由策略等。不同VPC網絡隔離,默認互不相通,確保資…

2023 arXiv MapperGPT: Large Language Models for Linking and Mapping Entities

論文基本信息 題目:MapperGPT: Large Language Models for Linking and Mapping Entities作者:Nicolas Matentzoglu, J. Harry Caufield, Harshad B. Hegde, Justin T. Reese, Sierra Moxon, Hyeongsik Kim, Nomi L. Harris, Melissa A Haendel, Christo…

Docker入門到精通:從零基礎到生產部署

前言:為什么你需要學習Docker? 想象一下,你開發了一個應用程序,在你的電腦上運行完美,但當你把它交給同事或部署到服務器時,卻出現了各種奇怪的問題。這就是著名的"在我機器上能運行"問題。 Do…

HOT100--Day15--98. 驗證二叉搜索樹,230. 二叉搜索樹中第 K 小的元素,199. 二叉樹的右視圖

HOT100–Day15–98. 驗證二叉搜索樹,230. 二叉搜索樹中第 K 小的元素,199. 二叉樹的右視圖 每日刷題系列。今天的題目是《力扣HOT100》題單。 題目類型:二叉樹。 關鍵:要深刻理解《遞歸》 98. 驗證二叉搜索樹 思路: …

獨角數卡對接藍鯨支付平臺實現個人

目錄 什么是獨角數卡?安裝部署教程一、獨角數卡安裝二、獨角數卡支付配置三、獨角數卡BUG修復 什么是獨角數卡? ? ? ? ? ? ? ? 獨角數卡(Dujiaoka)?是一款基于Laravel框架開發的開源式站長自動化售貨解決方案,主要用于虛擬商品和數字…

人工智能常見分類

人工智能的分類方式多樣,以下是一些常見的分類方法及具體類型: 一、按功能目標分類 弱人工智能(ANI,Narrow AI):專注于單一任務,無自主意識,如圖像識別(人臉解鎖&#xf…

PO BAPI bapi_po_create1

當執行BAPI時,需要導入增強字段,其中增強字段包含數值型號字段時,需要增強BADI::ME_BAPI_PO_CUST 代碼如下: 記錄一下,下次自己繼續用 bapi處: ls_te_item-po_item = lv_item.ls_te_item-zz001 = 11.ls_te_item-zz005 = 22.ls_te_item-zz008 = 33.ls_te_item-zz009 = 44…

棧欺騙技術的作用是什么?

好的,我們來詳細解釋一下“棧欺騙技術”(Stack Spoofing)的作用。簡單來說,棧欺騙技術的核心作用是隱藏程序(尤其是惡意軟件或安全工具)的真實調用鏈,使其逃避基于棧回溯(Stack Walk…

Nano-banana 模型對接教程:最懂創作者的 AI 模型,比GPT-4o還強!

Nano-banana 模型對接教程(含 BaseURL) Nano Banana 是谷歌推出的革命性 AI 圖像編輯模型,代表了從"AI繪畫工具"到"AI創意伙伴"的范式轉移。它不再是被動執行指令,而是能深刻理解已有圖像的上下文、光影、物…

CEEMDAN-PSO-CNN-GRU 鋰電池健康狀態預測matlab

代碼說明 這個實現包含以下主要組成部分: 數據準備:加載并預處理鋰電池容量數據,劃分訓練集和測試集 CEEMDAN分解:將原始信號分解為多個本征模態函數(IMF)和一個殘差項 PSO優化:使用粒子群算法優化CNN-GRU網絡的超參數 CNN-GRU模型:構建并訓練卷積神經網絡與門控循環…

MySQL 主從讀寫分離架構

我們首先來詳細、清晰地講解 MySQL 主從讀寫分離架構,然后逐一解答你提出的以及補充的高頻面試問題。第一部分:MySQL 主從讀寫分離架構詳解1. 什么是主從復制與讀寫分離?你可以把它想象成一個 “團隊作戰” 的模式。主數據庫 (Master)&#x…

HTML 中的 CSS 使用說明

CSS 使用說明 1. CSS 概述 CSS (Cascading Style Sheets) 是一種用于描述 HTML 或 XML(包括如 SVG、MathML 等 XML 方言)文檔呈現的樣式表語言。CSS 描述了元素應該如何在屏幕、紙張或其他媒體上顯示。 2. CSS 的基本語法 CSS 規則由兩個主要部分組成…

gitlab推送失敗,內存不足的處理

git提交時報錯: 2025-09-03 20:03:32.583 [info] > git push origin master:master [4866ms]2025-09-03 20:03:32.583 [info] fatal: Out of memory, malloc failed (tried to allocate 1048576000 bytes)看了下服務器內存,空余的只有幾百M了。 用hto…

【FastDDS】Discovery ( 05-Discovery Server Settings)

發現服務器設置 這種機制基于客戶端-服務器發現模式,即元流量(域參與者之間用于識別彼此的消息交換)由一個或多個服務器域參與者管理(左圖),而在簡單發現(右圖)中,元流量通過IP多播協議等消息廣播機制進行交換。有一款發現服務器工具可簡化發現服務器的設置和測試。 …

Xilinx ZYNQ 開發環境中搭建Qt環境

在 Xilinx ZYNQ 開發環境中搭建 Qt 環境,意味著你要開發運行在 ZYNQ 嵌入式 Linux 系統上的 GUI 應用程序。這比在 PC 上搭建 Qt 要復雜一些,因為它涉及交叉編譯:在你的 PC(主機)上編譯出能在 ZYNQ 芯片(目標機)的 ARM Cortex-A9 核心上運行的程序。 整個過程可以分為以…