1

pyodbc の fetchall() メソッドから返されたリストに列を追加しようとしていますが、エラーが発生しています。これが私のコードです:

import pyodbc
import time
import calendar
from datetime import date

#variable declaration
today = date.today()
beginRange = date(today.year,today.month,1)
endRange = date(today.year,today.month,2) #limit data to 2 days for testing

#connect to database
connJobDtl = pyodbc.connect("DSN=Global_MWM;UID=Master")
cJobDtl = connJobDtl.cursor()

#database query
cJobDtl.execute("select job,suffix,seq,date_sequence,[...]")
dataJobDtl = cJobDtl.fetchall()
cJobDtl.close()

#add another column to the list, date_sequence formatted to YYYY-MM
dataJobDtl = [x + [x[3].strftime("%Y-%m")] for x in dataJobDtl]

スクリプトを実行すると、次のエラーが発生します。

File "...\jobDetailScript.py", line 23, in <module>
  dataJobDtl = [x + [x[3].strftime("%Y-%m")] for x in dataJobDtl]
TypeError: unsupported operand type(s) for +: 'pyodbc.Row' and 'list'

テストとして、Python シェルで代表的な例を作成し、正常に動作しましたが、fetchall() からリストを生成するのではなく、手動でリストのリストを作成しました。このエラーを解決するにはどうすればよいですか?

4

1 に答える 1