TinyDB - 插入資料



我們已經建立了 TinyDB 例項,並向其傳遞了一個 JSON 檔案,我們的資料將儲存在那裡。現在是時候將專案插入到我們的資料庫中了。資料應為 Python 字典格式。

語法

要插入專案,可以使用insert() 方法,其語法如下:

db.insert({'type1': 'value1', 'type2': 'value2', 'typeN': 'valueN'})

我們也可以先建立一個字典,然後使用 insert() 方法將資料插入到我們的資料庫中。

data_item = {'type1': 'value1', 'type2': 'value2', 'typeN': 'valueN' } db.insert(data_item)

執行上述命令後,insert() 方法將返回新建立物件的 ID。並且,我們的 JSON 檔案將如下所示:

{"_default": {"1": {"type1": "value1", "type2": "value2", "typeN": "valueN"}}}

檢視上表條目:'default' 是表名,'1' 是新建立物件的 ID,values 是我們剛剛插入的資料。

示例:插入單個專案

讓我們透過示例來理解上述概念。假設我們有一個數據庫,其中包含學生資訊,顯示學號、姓名、分數、科目和地址。以下是資料庫中儲存的資訊:

[
   {
      "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":"oracle",
      "address":"benglore"
   }
]

在上述資料庫中,如果要插入新的學生記錄(即單個專案),請使用以下命令:

db.insert({
   'roll_number': 6,
   'st_name':'jim',
   'mark':300,
   'subject':'sql',
   'address':'pune'
})

它將返回新建立物件的 ID:

6

讓我們再輸入一條記錄

db.insert({
   'roll_number': 7,
   'st_name':'karan',
   'mark':290,
   'subject':'NoSQL',
   'address':'chennai'
})

它將返回新建立物件的 ID:

7

如果要檢查資料庫中儲存的專案,請使用all() 方法,如下所示:

db.all()

它將產生以下輸出

[
   {
      "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":"oracle",
      "address":"benglore"
   },
   {
      "roll_number":6,
      "st_name":"jim",
      "mark":300,
      "subject":"sql",
      "address":"pune"
   },
   {
      "roll_number":7,
      "st_name":"karan",
      "mark":290,
      "subject":"NoSQL",
      "address":"chennai"
   }
]

您可以觀察到它在 JSON 檔案中添加了兩個新的資料項。

示例:一次插入多個專案

您也可以一次在 TinyDB 資料庫中插入多個專案。為此,您需要使用insert_multiple() 方法。讓我們來看一個例子:

items = [
   {'roll_number': 8, 'st_name': 'petter', 'address': 'mumbai'},
   {'roll_number': 9, 'st_name': 'sadhana', 'subject': 'SQL'}
]
db.insert_multiple(items)

現在,使用 all() 方法檢查資料庫中儲存的專案,如下所示:

db.all()

它將產生以下輸出

[
   {
      "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":"oracle",
      "address":"benglore"
   },
   {
      "roll_number":6,
      "st_name":"jim",
      "mark":300,
      "subject":"sql",
      "address":"pune"
   },
   {
      "roll_number":7,
      "st_name":"karan",
      "mark":290,
      "subject":"NoSQL",
      "address":"chennai"
   },
   {
      "roll_number":8,
      "st_name":"petter",
      "address":"mumbai"
   },
   {
      "roll_number":9,
      "st_name":"sadhana",
      "subject":"SQL"
   }
]

您可以觀察到它在 JSON 檔案中添加了兩個新的資料項。在新增最後兩個專案時,您也可以跳過資料項中的一些鍵值(就像我們所做的那樣)。我們跳過了“mark”和“address”。

廣告