繁体   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