我有这个令人烦恼的错误,我无法解决..这是我的功能
def savePicture(pic):
try:
connection=sqlite3.connect('/home/faris/Desktop/site/site.db')
db=connection.cursor()
print type(pic.user.profile_picture)
db.execute('INSERT INTO pictures (picture_id, caption, created_time, picture_url, link, username,full_name,profile_picture) VALUES (?,?,?,?,?,?,?,?)',
[
pic.id,
pic.caption,
pic.created_time,
pic.get_standard_resolution_url(),
pic.link,
pic.user.username,
pic.user.full_name,
pic.user.profile_picture
])
connection.commit()
connection.close()
except sqlite3.IntegrityError:
print 'pic already exist'
这是我的表(Sqlite:D)
-- Describe PICTURES
CREATE TABLE "pictures" (
"picture_id" INTEGER PRIMARY KEY,
"caption" TEXT,
"created_time" TEXT,
"picture_url" TEXT,
"link" TEXT,
"username" TEXT,
"full_name" TEXT,
"profile_picture" TEXT
)
这就是我遇到的错误,
<type 'str'>
Traceback (most recent call last):
File "/home/faris/Desktop/site/cron/pictures.py", line 15, in <module>
savePicture(picture)
File "/home/faris/Desktop/site/db.py", line 36, in savePicture
pic.user.profile_picture
sqlite3.InterfaceError: Error binding parameter 1 - probably unsupported type.
如你所见,我已经打印了“pic.user.profile_picture”的类型并返回了str 我也试过使用这两个函数(unicode和str)来确保它返回一个没有运气的字符串..
有什么想法吗?干杯:D
答案 0 :(得分:13)
好的,那是愚蠢的哈哈
pic.caption,
pic.created_time,
不是TEXT类型..但错误消息msg说的是问题 来自pic.user.profile_picture。 因此,如果您有此错误只需检查所有参数:)
阅读以下评论:)
答案 1 :(得分:0)
解决此问题的最简单方法是-将所有数据框列转换为str,然后应用to_sql方法。
df = df.applymap(str)
否则,您可以在将数据框保存到SQLite表之前更改与SQLite数据类型兼容的每一列的数据类型。将数据插入SQL表时, dtype
方法的to_sql
参数将有助于转换列的数据类型。