Python - gurdar valores de una tupla en variables

   
Vista:

gurdar valores de una tupla en variables

Publicado por Alberto (20 intervenciones) el 23/04/2015 15:47:07
Hola,

Ejecuto la query:
select min(fecha_s) as fecha_s_min, max(fecha_s) as fecha_s_max
from tabla

Resultado:
((datetime.date(2008, 8, 10), datetime.date(2008, 8, 15)),)

Como puedo guardar estos valores en 2 variales?

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

gurdar valores de una tupla en variables

Publicado por Daniel (1 intervención) el 23/04/2015 16:41:39
si por ejemplo tengo la tupla:
x = (5, 6)
podria guardarla en variables diferentes poniendo:
y, z = x
asi quedaria:

>>>y
5
>>>z
6

osea en tu caso podrias poner algo como:
variable1, variable2 = Resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

gurdar valores de una tupla en variables

Publicado por Alberto (20 intervenciones) el 23/04/2015 16:52:04
Daniel, gracias por tu respuesta!

Probe:
v1, v2 = res

Pero me da el error:
ValueError: need more than 1 value to unpack

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

gurdar valores de una tupla en variables

Publicado por xve (1229 intervenciones) el 23/04/2015 20:14:05
Hola Alberto, creo que el error que te da, es porque la variable res, únicamente tiene un valor.... puede ser?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gurdar valores de una tupla en variables

Publicado por Alberto (20 intervenciones) el 23/04/2015 22:29:38
Hola xve,

Tengo ((datetime.date(2008, 8, 10), datetime.date(2008, 8, 15)),)

Es una tupla de 1 elemento que tambien es una tupla

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

gurdar valores de una tupla en variables

Publicado por xve (1229 intervenciones) el 24/04/2015 08:41:37
Hola Alberto, tienes mal los paréntesis... eso es una tupla, únicamente con una tupla dentro... creo que tendría que ser así:
1
(datetime.date(2008, 8, 10), datetime.date(2008, 8, 15),)

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gurdar valores de una tupla en variables

Publicado por Alberto (20 intervenciones) el 24/04/2015 15:21:48
hola xve,

Tengo esta funcion que ejecuta una query, la cual retorna "res", si imprimo "res" me muestra como resultado ->
((datetime.date(2008, 8, 10), datetime.date(2008, 8, 15)),) , el tema es que necesito pasar estos 2 valores como parametro a otra query

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def fecha_min_max(tabla):
    q = "select min(fecha_s) as fecha_s_min, max(fecha_s) as fecha_s_max from "
    q = q + tabla
 
    res = run_query(q)
 
    return res
 
def run_query(query=''):
    datos = [DB_HOST, DB_USER, DB_PASS, DB_NAME]
 
    conn = pymysql.connect(*datos)
    cursor = conn.cursor()
    cursor.execute(query)
 
    if query.upper().startswith('SELECT'):
        data = cursor.fetchall()
    else:
        conn.commit()
        data = None
 
    cursor.close()
    conn.close()
 
    return data

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

gurdar valores de una tupla en variables

Publicado por xve (1229 intervenciones) el 24/04/2015 23:34:41
Para obtener cada uno de los valores, puedes hacer algo como:

1
2
3
4
a=((datetime.date(2008, 8, 10), datetime.date(2008, 8, 15)),)
 
a[0] # devuelve (datetime.date(2008, 8, 10), datetime.date(2008, 8, 15))
a[0[0]] # devuelve datetime.date(2008, 8, 10)

Segun esto, cuando devuelvas res, tienes que devolverlo así:
res[0]

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

gurdar valores de una tupla en variables

Publicado por Alberto (20 intervenciones) el 29/04/2015 21:14:59
Hola xve,

Un exito!, pude pasar los valores a una variable.

res = (datetime.date(2008, 7, 31), datetime.date(2008, 9, 25))

fecha_min = (res[0][0])
fecha_max = (res[0][1])

print(res[0])
print(fecha_min)
print(fecha_max)

Salida

(datetime.date(2008, 7, 31), datetime.date(2008, 9, 25))
2008-07-31
2008-09-25


Gracias!
Alberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar