嗨,我在Python上有一个带有SQL的脚本,我使用fecthall()方法提取我想要的元素,直到那里都很好,因为我想修改两个列(datetime.date和datetime.time)到另一个时区但是我阅读文档,它似乎不容易看起来......
现在我有下一段代码拿到桌子,然后试图将日期转换到另一个时区,我知道......这是一个约会,但如果在西班牙现在是从墨西哥的12/12从2017年12月4日下午5点开始... ...
BTW Im使用 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()在select_hagent中的文件“cms_V2_30m.py”,第211行 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'对象没有 支持项目分配
答案 0 :(得分:0)
看起来您正试图将.astimezone()链接到错误的实体。也许试试row[0] = (hUTC.localize(datetime.datetime.combine(row[0], hoyUTC.time())).astimezone(hMexico))
答案 1 :(得分: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))