2017-12-04 9 views
0

こんにちは、私はPythonのSQLでスクリプトを持っていますが、私は2つの列(datetime.dateとdatetime)を変更したいので、fecthall()メソッドを使って必要な要素を抽出しました。時間)を別のタイムゾーンに変更しましたが、私はドキュメントを読んでいて、それは簡単ではないようです。Pyodbc update cursor

今のところ、次のコードをテーブルを取得して、別のタイムゾーンに日付を秘密にしようとしています。 ...その日が、スペインでは今メキシコで2017年5月12日から午前12時の場合はサイコー2017年4月12日から午後5時です...

ところでイムpytz

を使用して今のところ
cursor.execute(cadenaSQL + cadenaSQL_dos) 
      su_dict[base+' hagent'] = cursor.fetchall() 
      for row in su_dict[base+' hagent']: 
       row = list(row)[0] 
       print row 
       row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time()).astimezone(hMexico)) 

私はそのコードでこのエラーを得た:

Traceback (most recent call last): File "cms_V2_30m.py", line 1535, in main() File "cms_V2_30m.py", line 1444, in main select_hagent() File "cms_V2_30m.py", line 211, in select_hagent row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time()).astimezone(hMexico)) TypeError: 'datetime.date' object is unsubscriptable

はEDIT:

私は - 私の近くには、問題は今行オブジェクトであると考え、それはタプルなので...それは不可能なので、私はこのvaleを変更する方法を見つけようとしています...

新しいコード:

for row in su_dict[base + ' hagent']: 
     print row[0] 
     #list(row) 
     #print my_date[0] 
     #print datetime.datetime.combine(my_date[0], hoyUTC.time()) 
     row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico) 

新しいエラー:あなたは間違っているエンティティに)(.astimezoneチェーンにしようとしているよう

Traceback (most recent call last): File "cms_V2_30m.py", line 1538, in main() File "cms_V2_30m.py", line 1447, in main select_hagent() File "cms_V2_30m.py", line 214, in select_hagent row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico) TypeError: 'tuple' object does not support item assignment

答えて

0

が見えます。たぶん試してみるrow[0] = (hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico))

+0

は、同じエラー:( – Urkidy

0

ループ内にrowを上書きすると問題が発生しているようです。代わりにこれを試してください?

for row in su_dict[base + ' hagent']: 
    my_date = list(row)[0] 
    print my_date 
    row[0] = hUTC.localize(datetime.datetime.combine(my_date, hoyUTC.time()).astimezone(hMexico)) 
+0

ハズレを手に入れた今、私はこのエラーを得た: 'ValueErrorを:astimezoneは()あなたの日付はタイムゾーンナイーブであれば、あなたが使用する必要がありますナイーブdatetime' – Urkidy

+0

に適用することはできません代わりに 'timedelta' – FlipperPA