0

我有一个正在迭代的数据结构:

SomeList = [[ID, VarA, VarB, DateC, VarD],[ID2, VarA2, VarB2, DateC2, VarD2]...]

DateCX 变量将始终采用以下形式:

"2013-07-15T13:58:55Z" 

我还使用该sqlite库创建了一个 sqlite 数据库:

import sqlite3 as lite
con = lite.connect('test.db')
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE TEST(ColumnID INT, ColumnA TEXT, ColumnB TEXT, ColumnC DATETIME, Column D TEXT)")

然后我遍历SomeList

for list in SomeList:
    TempID = list[0]
    TempA = list[1]
    TempB = list[2]
    TempDateC = list[3]
    TempD = list[4]

对于日期字段,我一直在利用库中的strptime函数time在 python 中解析它:

    TempDateC = time.strptime(TempDateC, "%Y-%m-%dT%H:%M:%SZ")

这导致了我期待的元组。

然后我尝试更新TEST数据库:

    allValues = (TempID, TempA, TempB, TempDateC, TempD)
    cur.execute("INSERT INTO TEST VALUES(?, ?, ?, ?, ?)", allValues)

但我收到以下错误:

 sqlite3.InterfaceError: Error binding parameter 3 - probably unsupported type.

我还需要做些什么来将我创建的元组转换为可以插入 SQL 数据库的东西吗?

4

1 回答 1

0

好吧,我想通了。

你必须

import time
import datetime

然后,而不是

TempDateC = time.strptime(TempDateC, "%Y-%m-%dT%H:%M:%SZ")

您需要使用一些函数解析日期:

TempDateC = datetime.datetime.fromtimestamp(time.mktime(time.strptime(TempdateC, "%Y-%m-%dT%H:%M:%SZ")))
于 2013-07-21T00:00:50.193 回答