0

我是 SQLite 方面的新手,也是 Python 方面的相对菜鸟。我正在为演示应用程序收集过程仪表数据。我写了这段代码:

from DAQ_Util import *
from sqlite3 import *


print 'Setting up memory-resident SQL database...'
BenchDB = connect(':memory:')
DBTableSetup = BenchDB.cursor()
DBTableSetup.execute("create table ss2000 (timestamp, var1, var2, var3, var4, var5, var6, var7,  var8, var9)")
DBTableSetup.close()

# Access data from SS2000 TDL Sensor
instReading = ss2000serialRead('192.168.1.121', 4001, 57)
print instReading
SS2000TabPopulate = BenchDB.cursor()
SS2000TabPopulate.execute("insert into ss2000 values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
[instReading(i) for i in instReading])

print '...Done'

DAQ_Util 模块是用于从仪器中获取过程数据的例程集合。ss2000serialRead来自 DAQ_Util 并从此类仪器中引入数据字符串列表。部分数据转载如下。我要做的就是sqlite使用列表理解将此数据写入表。它不起作用,我不知道如何解释错误消息,尽管我认为比我更了解 Python 的人可能会立即发现错误,或者我希望... :o) 屏幕输出转储如下:

$ python SQLite-test.py
Setting up memory-resident SQL database...
  Try connecting to serial server...
['2012-08-05 16:52:49.548095', '20.0000', '0.0000', '13.5', '76.60', '8190', '1640', '240', '-13', '79.40']
Traceback (most recent call last):
  File "SQLite-test.py", line 17, in <module>
[instReading(i) for i in instReading])
TypeError: 'list' object is not callable 
$

有人可以指出错误吗?谢谢!

谢谢伊格纳西奥,这里是更正的代码:

# Access data from SS2000 TDL Sensor
instReading = ss2000serialRead('192.168.1.121', 4001, 57)
print instReading
SS2000TabPopulate = BenchDB.cursor()
SS2000TabPopulate.execute("insert into ss2000 values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
                        instReading)

==== 红色

4

1 回答 1

3

instReading已经是一个序列。

....execute(..., instReading)
于 2012-08-05T23:15:15.797 回答