【发布时间】:2018-05-18 12:16:34
【问题描述】:
嗨,我有一个带有 SQL 的 Python 脚本,我使用 fecthall() 方法来提取我想要的元素,直到那里都很好,因为我想将两列(datetime.date 和 datetime.time)修改为另一个时区,但我阅读文档,它似乎并不容易......
现在我有下一段代码获取表格,然后尝试将日期转换为另一个时区,我知道...它是一个日期,但如果在西班牙现在是从 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))
现在我收到了这个代码的错误:
回溯(最近一次调用最后一次):文件“cms_V2_30m.py”,第 1535 行, 在 main() 文件“cms_V2_30m.py”,第 1444 行,在 main select_hagent() 文件“cms_V2_30m.py”,第 211 行,在 select_hagent row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time()).astimezone(hMexico)) TypeError: 'datetime.date' 对象 不可订阅
编辑:
我想我很接近了,现在的问题是行对象,因为它是一个元组......所以它是不可变的,所以我正在尝试找到一种方法来改变这个值......
新代码:
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)
新的错误:
回溯(最近一次调用最后一次):文件“cms_V2_30m.py”,第 1538 行, 在 main() 文件“cms_V2_30m.py”,第 1447 行,在 main select_hagent() 文件“cms_V2_30m.py”,第 214 行,在 select_hagent row[0] = hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico) TypeError: 'tuple' object does not 支持项目分配
【问题讨论】: