如何正确地映射Python;名单;到SQL表中(使用SQLite3构建)?

如何正确地映射Python;名单;到SQL表中(使用SQLite3构建)?,python,sqlite,Python,Sqlite,我的数据来自一个包含仪器读数的XML解析器。数据样本如下所示: cimReading = [['2012-08-15 10:05:13.101485', ['0x46'], ['0x32'], ['1.234'], ['5.678'], ['9.123'], ['4.567'], ['0x98'], ['0x97']], ['2012-08-15 10:05:13.101979', ['0x47'], ['0x33'], ['8.901'], ['2.345'], ['6.789'], [

我的数据来自一个包含仪器读数的XML解析器。数据样本如下所示:

cimReading = [['2012-08-15 10:05:13.101485', ['0x46'], ['0x32'], ['1.234'], ['5.678'], ['9.123'],
 ['4.567'], ['0x98'], ['0x97']], 
['2012-08-15 10:05:13.101979', ['0x47'], ['0x33'], ['8.901'], ['2.345'], ['6.789'], 
['0.123'], ['0x96'], ['0x95']]]
我试图循环遍历列表项并将它们放在一个表中,
cim76\u dmt
,该表以前在Python中使用
sqlite3
定义。以下是我尝试执行此操作的代码:

for devList in cimReading:
    print devList
    cim76TabPopulate.execute('INSERT INTO cim76_dmt VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', 
            devList)
BenchDB.commit()
cim76TabPopulate.close() 
以下是我在执行时收到的错误消息:

['2012-08-15 10:40:21.110140', ['0x46'], ['0x32'], ['1.234'], ['5.678'], ['9.123'], ['4.567'], ['0x98'], ['0x97']]
EXCEPTION...
(<class 'sqlite3.InterfaceError'>, InterfaceError('Error binding parameter 1 - probably unsupported type.',), <traceback object at 0x1007a7518>)
['2012-08-15 10:40:21.110140'、['0x46']、['0x32']、['1.234']、['5.678']、['9.123']、['4.567']、['0x98']、['0x97']
例外。。。
(,InterfaceError('绑定参数1时出错-可能是不支持的类型',),)
因此,将列表项映射到SQL表字段时遇到问题。我认为应该有办法做到这一点,但另一种可能是调整XML解析,以便为每个记录生成一个包含多个字符串的列表。我欢迎对此提出任何建议或建议


提前谢谢

您的问题是,第一个参数之后的所有参数都是列表,而不是字符串或整数。赢得错误消息的部件正在抱怨
不支持的类型
正在抱怨数据元素
['0x46']


你需要更多地按摩你的数据;您想将
['0x46']
解包到
'0x46'
。这需要对示例数据中单长度列表中的其他数据元素执行。

嗨,约瑟夫,谢谢你的回复。是的,我认为这个问题与数据表示作为“列表列表”有关。我在寻找关于是否应该重新编写XML解析代码来传递字符串的建议,或者是否有一种将列表项转换为字符串序列的快速方法。你会推荐哪种方法?嗯,让数据的结构适合它的性质。如果每个元素只能由一个元素组成,那么就去掉这个列表。因此,如果保证您的数据总是看起来像
['2012-08-15 10:05:13.101485',['0x46']…
,并且永远不会像
['2012-08-15 10:05:13.101485',['0x46',0x45].
。如果您按照预期的方式使用这些设施,那么一切都会更好(tm)因此,考虑是否还需要一个整数字段,如“代码> 0x46<代码>,而不是字符串表示形式。它是一个简单的列表,我计划将数据以字符串格式存储在SQL表中,只在提取它时才将其转换为计算等。从十六进制和浮点形式的仪器服务器,我在通过函数调用获取时添加时间戳。我想我们都知道答案——我需要回到XML解析器,以这种方式提取数据。