У меня странная проблема, которую я не могу понять.Когда я спрашиваю от Python
до .replace
row[2]
, это также меняет значение row[1]
.Это происходит только в случаях, когда row[1]
и row[2]
имеют одинаковое значение до Я меняю row[2]
.
Я querying
мой database
вот так:
c_lime.execute("SELECT * FROM lime_database_table WHERE {} = ? ORDER BY time_start ASC".format(table_column), [user_query])
for row in c_lime.fetchall():
#ROW IS (2.31568438882786e+38, '1/8/2015 8:00:00 AM', '1/8/2015 9:00:00 AM')
passed_row = row[1]
#HERE I SUCCESSFULLY REPLACE row AT POSITION row[1]
replaced_row = str(row).replace(row[1], convert_time_zone(passed_row))
#NOW row[1] is '1/8/2015 9:00:00 AM', the same as row[2]
passed_row2 = row[2]
#HERE I REPLACE row[2]
replaced_row2 = str(replaced_row).replace(row[2], convert_time_zone(passed_row2))
print(replaced_row2)
Теперь я ожидаю, что row[1]
будет '1/8/2015 9:00:00 AM'
, как и раньше, и row[2]
будет '1/8/2015 10:00:00 AM'
но по какой-то странной причине оба '1/8/2015 10:00:00 AM'
.Эта ошибка только возникает, когда row[1]
на один час меньше row[2]
.В противном случае это работает безупречно, добавляя 1 час к row[1]
и row[2].
Если это поможет, я выложу код для метода convert_time_zone
:
def convert_time_zone(passed_row):
change_date = passed_row
print(str(change_date))
tz = time_zone
my_time_list = list(change_date)
counter = 0
for i in my_time_list:
if i == ":":
print("Found : Counter is " + str(counter))
print("\nBEFORE: " + str(''.join(my_time_list)) + "\n")
if my_time_list[counter - 1] == "9":
my_time_list[counter - 1] = str(tz - 1)
if my_time_list[counter - 2] == " ":
my_time_list[counter - 2] = " 1"
elif my_time_list[counter - 2] != " ":
my_time_list[counter - 2] = " " + str(int(my_time_list[counter - 2]) + tz)
print("AFTER: " + str(''.join(my_time_list)) + "\n")
elif my_time_list[counter - 1] == "2" and my_time_list[counter - 2] == "1" and tz > 0:
my_time_list[counter - 1] = str(tz)
my_time_list[counter - 2] = " "
print("AFTER: " + str(''.join(my_time_list)) + "\n")
else:
my_time_list[counter - 1] = str(int(my_time_list[counter - 1]) + tz)
print("AFTER: " + str(''.join(my_time_list)) + "\n")
my_time_list = str(''.join(my_time_list))
print(my_time_list)
break
counter += 1
return my_time_list