簡體   English   中英

在現有SQLite記錄中更新BLOB字段的語法?

[英]syntax to UPDATE a BLOB field in an existing SQLite record?

使用Python UPDATE現有SQLite記錄中的BLOB字段的語法是什么? 我創建了一個13x13的浮點數組,並希望使用該數組更新表中的特定記錄(即使用WHERE子句)。

正確的UPDATE語法是什么?

數組具有以下形式:

[ 4.65640926e+00  5.59250259e+00  5.28963852e+00  1.60680866e+00
  -3.39492680e-01 -4.76834650e-01 -4.76834650e-01 -2.29132240e-01
   1.49733067e+00  1.51563072e+00  1.49733067e+00  9.53471420e-01
  -1.40306473e+00]

 [ 5.28963852e+00  5.34537315e+00  5.05013466e+00  1.48362923e+00
  -3.69843300e-01 -4.76834650e-01 -4.76834650e-01 -2.29132240e-01
   7.60705290e-01  1.49733067e+00  9.53471420e-01  3.05504260e-01
  -1.40306473e+00]

共有13個子陣列的13行。

謝謝你,比爾

SQL的語法是:

UPDATE mytable SET myblobcolumn = x'ffeedd' WHERE your_where_clause;

哪里

  • mytable是表名,
  • myblobcolumn是要更新的列的名稱,
  • your_where_clause是選擇標准,
  • x'ffeedd'是字節數組值,轉換為十六進制,將用於更新列。

顯然,以上只是表示形式,您必須替換適當的值

在此處輸入圖片說明

一位朋友向我指出了這種解決方案,效果很好。 最初的答案來自StackOverflow,以給予適當的感謝。

def Adapt_array(arr):“”“重新格式化numpy數組以便可寫入SQLite BLOB字段輸入:Numpy Array返回:格式與二進制BLOB兼容的代碼源: Python將numpy數組插入sqlite3數據庫 ”“” out = io.BytesIO ()np.save(out,arr)out.seek(0)返回sqlite3.Binary(out.read())

def convert_array(text):“”“將SQLite BLOB字段重新格式化為原始的Numpy數組輸入:來自SQLite的Numpy BLOB返回:numpy array代碼源: Python將numpy數組插入sqlite3數據庫 ”“” out = io.BytesIO(text) out.seek(0)返回np.load(out)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM