0

計測器の読み取り値を含む 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_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>)

そのため、リスト項目を SQL テーブル フィールドにマッピングする際に問題が発生しています。これを行う方法があるはずだと思いますが、別の可能性として、XML 解析を微調整して、レコードごとに複数の文字列の単一のリストを生成することもできます。これに関する提案やアドバイスをいただければ幸いです。

前もって感謝します!

4

1 に答える 1

2

あなたの問題は、最初のパラメーターの後のすべてのパラメーターが文字列や整数ではなくリストであることです。エラーメッセージが表示される部分はunsupported type、データ要素について不平を言っています['0x46']

データをもう少しマッサージする必要があります。に解凍['0x46']'0x46'ます。これは、サンプル データの単一長リストの他のデータ要素に対して行う必要があります。

于 2012-08-15T17:00:43.037 に答える