如何将字节对象插入数据库。每当我尝试这个时,我最终会插入一个空字符串(而不是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 事实证明,当你可以代替预备语句时使用表模型更有意义(他还注意到pyqt中关于exec()vs exec _()的错误。
答案 0 :(得分:0)
您必须明确转换为QByteArray。
record.setValue('image', QtCore.QByteArray(img_pkl))
注意:您还必须使用float()
转换numpy.float64对象