pyqt5无法插入字节

时间:2017-02-17 15:58:18

标签: python-3.x pyqt5 qsqltablemodel

如何将字节对象插入数据库。每当我尝试这个时,我最终会插入一个空字符串(而不是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 _()的错误。

1 个答案:

答案 0 :(得分:0)

您必须明确转换为QByteArray。

record.setValue('image', QtCore.QByteArray(img_pkl))

注意:您还必须使用float()

转换numpy.float64对象