使用Python将图像下载到sqlite数据库

使用Python将图像下载到sqlite数据库,python,sqlite,Python,Sqlite,我正在构建一个iphone应用程序,其中包括我从网站上抓取的200张图片,这些图片将随机显示给用户。我试图用Python将这些图像存储在sqlite数据库中。(注意:在我目前的研究中,我了解到这可能不是实现我目标的最佳方式,我在这个相关问题中提出了这个问题。我仍然好奇我做错了什么) 数据库的其余部分工作正常(文本字段)。我正在使用Sublime并获得输出[解码错误-输出不是utf-8],但我不确定该如何处理这些信息。您代码中的第一个错误是在编写…: INSERT INTO member_data

我正在构建一个iphone应用程序,其中包括我从网站上抓取的200张图片,这些图片将随机显示给用户。我试图用Python将这些图像存储在sqlite数据库中。(注意:在我目前的研究中,我了解到这可能不是实现我目标的最佳方式,我在这个相关问题中提出了这个问题。我仍然好奇我做错了什么)


数据库的其余部分工作正常(文本字段)。我正在使用Sublime并获得输出
[解码错误-输出不是utf-8]
,但我不确定该如何处理这些信息。

您代码中的第一个错误是在编写…:

INSERT INTO member_data (picture, name, email, link)
当您刚刚创建了表
成员\u数据
以包含字段
图片
名称
,但不是
电子邮件
链接
——然后您尝试将两个值格式化为该SQL字符串。我怀疑你不是在向我们展示你的实际代码,而是错误地试图简化它

您犯的一个更深层次的错误是使用字符串格式来准备sql语句,而不是您应该使用的占位符

因此,改变:

sql = '''INSERT INTO member_data (picture, name, email, link) VALUES ("{}", "{}",)'''.format(photo, member_name)
con.cursor().execute(sql)
进入:


(您已经有了一个非常好的光标,为什么还要再做一个呢?)

代码中的第一个错误是当您编写…:

INSERT INTO member_data (picture, name, email, link)
当您刚刚创建了表
成员\u数据
以包含字段
图片
名称
,但不是
电子邮件
链接
——然后您尝试将两个值格式化为该SQL字符串。我怀疑你不是在向我们展示你的实际代码,而是错误地试图简化它

您犯的一个更深层次的错误是使用字符串格式来准备sql语句,而不是您应该使用的占位符

因此,改变:

sql = '''INSERT INTO member_data (picture, name, email, link) VALUES ("{}", "{}",)'''.format(photo, member_name)
con.cursor().execute(sql)
进入:


(你已经有了一个非常好的光标,为什么还要再做一个?-)

你是对的,这些错误是由不正确的简化引起的——我已经编辑了这篇文章。占位符校正是一个很好的提示;我一直在努力解决这个问题。然而,我认为这些错误都不能解释我所说的问题,除非我误解了。@thumbtack小偷你试过占位符吗?请这样做,并相应地编辑你的Q——我不认为你的问题会持续下去。我不知道怎么做,但这确实解决了它!谢谢@图钉小偷,
如何
是基于
的插值?
占位符(可以代表不同类型,在本例中包括blob)如何工作,而不是字符串插值,猜猜看!,仅适用于字符串,即人类可读的文本(特别是不包括二进制大对象,也称为blob,如图像)。这些错误是由不正确的简化引起的,您是正确的——我编辑了这篇文章。占位符校正是一个很好的提示;我一直在努力解决这个问题。然而,我认为这些错误都不能解释我所说的问题,除非我误解了。@thumbtack小偷你试过占位符吗?请这样做,并相应地编辑你的Q——我不认为你的问题会持续下去。我不知道怎么做,但这确实解决了它!谢谢@图钉小偷,
如何
是基于
的插值?
占位符(可以代表不同类型,在本例中包括blob)如何工作,而不是字符串插值,猜猜看!,仅适用于字符串,即人类可读的文本(特别是不包括二进制大对象,也称为blob,如图像)。