0

double 型の数値を含む Microsoft Access データベース テーブルのいくつかの列にアクセスしようとしていますが、タイトルに記載されているエラーが発生します。データベースのクエリに使用されるコードは次のとおりです。エラーは次の行で発生しています。ここで cur.execute(....) コマンドが実行されます。基本的に、特定の時間間隔でキャプチャされたデータを除外しようとしています。cur.execute(....) コマンドで double データ型を含む列 CM3_Up、CG3_Up、CM3_Down、CG3_Down を除外すると、エラーは発生しません。他のテーブルから double データ型にアクセスするために同じロジックが使用され、問題なく動作しました。何が問題なのかわかりません。

コード:

start =datetime.datetime(2015,03,28,00,00)
a=start
b=start+datetime.timedelta(0,240)
r=7
while a < (start+datetime.timedelta(1)):
    params = (a,b)
    sql = "SELECT Date_Time, CM3_Up, CG3_Up, CM3_Down, CG3_Down FROM
          Lysimeter_Facility_Data_5 WHERE Date_Time >= ? AND Date_Time <= ?"
    for row in cur.execute(sql,params):
        if row is None:
            continue
        r = r+1
        ws.cell(row = r,column=12).value = row.get('CM3_Up')
        ws.cell(row = r,column=13).value = row.get('CG3_Up')
        ws.cell(row = r,column=14).value = row.get('CM3_Down')
        ws.cell(row = r,column=15).value = row.get('CG3_Down')

    a = a+five_min
    b = b+five_min
wb.save('..\SE_SW_Lysimeters_Weather_Mass_Experiment-02_03_26_2015.xlsx')

完全なエラー レポート:

Traceback (most recent call last):
  File "C:\DB_PY\access_mdb\db_to_xl.py", line 318, in <module>
    for row in cur.execute(sql,params):
  File "build\bdist.win32\egg\pypyodbc.py", line 1920, in next
    row = self.fetchone()
  File "build\bdist.win32\egg\pypyodbc.py", line 1871, in fetchone
    value_list.append(buf_cvt_func(alloc_buffer.value))
ValueError: could not convert string to float: E-3
4

2 に答える 2