TinyDB - 檢索資料



有多種方法可以幫助您從 TinyDB 資料庫中檢索資料。但要使用這些方法,您首先需要建立一個 Query 類的例項,如下所示:

from tinydb import Query
Student = Query()

這裡,Student 是資料庫的名稱。

讓我們檢查從 TinyDB 資料庫檢索資訊的不同方法。

使用 search() 方法檢索資料

search() 方法顧名思義,返回與我們提供的查詢匹配的專案列表,否則將返回空列表。

對於此示例和其他示例,我們將使用以下student 資料庫資料:

[
   {
      "roll_number": 1,
      "st_name": "elen",
      "mark": 250,
      "subject": "TinyDB",
      "address": "delhi"
   },
   {
      "roll_number": 2,
      "st_name": "Ram",
      "mark": [
         250,
         280
      ],
      "subject": [
         "TinyDB",
         "MySQL"
      ],
      "address": "delhi"
   },
   {
      "roll_number": 3,
      "st_name": "kevin",
      "mark": [
         180,
         200
      ],
      "subject": [
         "oracle",
         "sql"
      ],
      "address": "keral"
   },
   {
      "roll_number": 4,
      "st_name": "lakan",
      "mark": 200,
      "subject": "MySQL",
      "address": "mumbai"
   },
   {
      "roll_number": 5,
      "st_name": "karan",
      "mark": 275,
      "subject": "TinyDB",
      "address": "benglore"
   }
]

讓我們以一個示例來理解 search() 方法:

from tinydb import TinyDB, Query
db = TinyDB("leekha.json")
student = Query()
db.search(student.subject == 'TinyDB' )

上述查詢將從 student 資料庫檢索以下輸出

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":5,
      "st_name":"karan",
      "mark":275,
      "subject":"TinyDB",
      "address":"benglore"
   }
]

使用 get() 方法檢索資料

與 search() 方法相反,get() 方法只返回一個匹配的文件。否則將返回 None。例如,讓我們看以下程式碼:

from tinydb import TinyDB, Query
student = Query()
db.get(student.subject == 'TinyDB' )

上述查詢將從student 資料庫檢索以下資料。

[{'roll_number': 1, 'st_name': 'elen', 'mark': 250, 'subject': 'TinyDB', 'address': 'delhi'}]

使用 all() 方法檢索資料

all() 方法返回資料庫中的所有文件。例如,

db.all()

它將從 student 資料庫檢索所有資料。

[
   {
      "roll_number":1,
      "st_name":"elen",
      "mark":250,
      "subject":"TinyDB",
      "address":"delhi"
   },
   {
      "roll_number":2,
      "st_name":"Ram",
      "mark":[
         250,
         280
      ],
      "subject":[
         "TinyDB",
         "MySQL"
      ],
      "address":"delhi"
   },
   {
      "roll_number":3,
      "st_name":"kevin",
      "mark":[
         180,
         200
      ],
      "subject":[
         "oracle",
         "sql"
      ],
      "address":"keral"
   },
   {
      "roll_number":4,
      "st_name":"lakan",
      "mark":200,
      "subject":"MySQL",
      "address":"mumbai"
   },
   {
      "roll_number":5,
      "st_name":"karan",
      "mark":275,
      "subject":"TinyDB",
      "address":"benglore"
   }
]

使用 for 迴圈檢索資料

for 迴圈也返回資料庫中的所有文件。例如,

for info in db:
   print(info)

就像 all() 方法一樣,它將從 student 資料庫檢索所有行。

廣告

© . All rights reserved.