【问题标题】:pyqt5 fails to inserts bytespyqt5 无法插入字节
【发布时间】:2017-02-17 15:58:17
【问题描述】:

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

【问题讨论】:

    标签: python-3.x pyqt5 qsqltablemodel


    【解决方案1】:

    您必须显式转换为 QByteArray。

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

    注意:您还必须使用 float() 转换 numpy.float64 对象

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2019-05-23
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      相关资源
      最近更新 更多