pyqt5 无法插入字节
pyqt5 fails to inserts bytes
如何将字节对象插入数据库。每当我尝试这样做时,我都会插入一个空字符串(不是 NULL)。
with open(filepath, 'rb') as f:
filehash = hashlib.md5(f.read()).hexdigest()
img_pkl = pickle.dumps(img, protocol=4)
record = self.tablemodel.record()
record.setValue('originfile_path', filepath)
record.setValue('originfile_hash', filehash)
record.setValue('image', img_pkl)
record.setValue('area', area)
self.tablemodel.insertRecord(-1, record)
该问题已在邮件列表中注明,但从未得到解决。
https://www.riverbankcomputing.com/pipermail/pyqt/2016-April/037260.html
事实证明,当可以代替准备好的语句时,使用 table 模型更有意义(他还注意到 pyqt 中关于 exec() 与 exec_() 的错误。
您必须显式转换为 QByteArray。
record.setValue('image', QtCore.QByteArray(img_pkl))
注意:您还必须使用 float()
转换 numpy.float64 对象
如何将字节对象插入数据库。每当我尝试这样做时,我都会插入一个空字符串(不是 NULL)。
with open(filepath, 'rb') as f:
filehash = hashlib.md5(f.read()).hexdigest()
img_pkl = pickle.dumps(img, protocol=4)
record = self.tablemodel.record()
record.setValue('originfile_path', filepath)
record.setValue('originfile_hash', filehash)
record.setValue('image', img_pkl)
record.setValue('area', area)
self.tablemodel.insertRecord(-1, record)
该问题已在邮件列表中注明,但从未得到解决。 https://www.riverbankcomputing.com/pipermail/pyqt/2016-April/037260.html 事实证明,当可以代替准备好的语句时,使用 table 模型更有意义(他还注意到 pyqt 中关于 exec() 与 exec_() 的错误。
您必须显式转换为 QByteArray。
record.setValue('image', QtCore.QByteArray(img_pkl))
注意:您还必须使用 float()
转换 numpy.float64 对象