comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Se puede insertar datos de un for en la bd, saliendose del for?

  • 7 Respuestas
  • 1951 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Diciembre 22, 2013, 02:56:31 am »
Buenas amigo mi problema es el siguiente. se que en el titulo no me explique mucho. pero en vd no sabia como preguntarles.

tengo el siguiente codigo:

Código: Python
  1. try:
  2.             regex = '<span itemprop=\"director\".+?><span itemprop=\"name\">(.+?)<\/span><\/a><\/span>'
  3.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  4.             temp_var = re.search(pattern, htmlstring).group(0)
  5.             regex='<span class="ac.+?>(.+?)</span>'
  6.             pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  7.             temp_var2 = pattern.findall(temp_var)
  8.             for director in temp_var2:
  9.                 print director
  10.  

al yo imprimir director me lo da en la pantalla de python. pero al insertarlo en la base de datos me da este error.


Código: Python
  1. Traceback (most recent call last):
  2.   File "C:\Python27\BotSensaCine.py", line 346, in <module>
  3.     sql = "INSERT INTO peliculas (poster,titulospain,titulo,anio,duracion,pais,estreno,idioma,director,protagonistas,distribuidora,genero,presupuesto,sinopsi,guionistas,musica,fotografia,trailer1,trailer2,tt1,tt2) VALUES (\"%s\",\"%s\",\"%s\", \"%s\", \"%s\", \"%s\",\"%s\", \"%s\", \"%s\", \"%s\",\"%s\", \"%s\", \"%s\", \"%s\",\"%s\", \"%s\", \"%s\", \"%s\", \"%s\",\"%s\", \"%s\")" %(re.escape(poster),re.escape(titulospain), re.escape(titulo), re.escape(anio), re.escape(duracion), re.escape(pais), re.escape(estreno), re.escape(idioma), re.escape(director), re.escape(protagonistas), re.escape(distribuidora) , re.escape(genero), re.escape(presupuesto), re.escape(sinopsi), re.escape(guionistas), re.escape(musica), re.escape(fotografia),re.escape(trailer1), re.escape(trailer2),re.escape(tt1), re.escape(tt2))
  4. NameError: name 'director' is not defined


gracias de antemano.
« Última modificación: Diciembre 28, 2013, 06:56:50 pm por Expermicid »

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #1 en: Diciembre 22, 2013, 04:10:58 am »
¿Puedes poner el resto del código?

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Diciembre 22, 2013, 07:37:32 pm »
como el resto man? todo el bot?..
lo de expresiones regulares esta bien por que al imprimirlo con print no da error. pero al insertarlo en la base de datos me lanza el error.  que sera?

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #3 en: Diciembre 22, 2013, 11:48:50 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
como el resto man? todo el bot?..
lo de expresiones regulares esta bien por que al imprimirlo con print no da error. pero al insertarlo en la base de datos me lanza el error.  que sera?

Sólo era necesario todo el bloque try. Pero ahora que tengo el código completo te puedo ayudar mejor.

Primero: El error te dice que la variable director no está definida.
Segundo: La variable director no está definida porque la expresión regular no encuentra coincidencias (no salta el except porque no ocurre un error) así que el for np define la variable director.
Tercero: La solución es un simple condicional:

Código: Python
  1.             if temp_var2:
  2.                 for director in temp_var2:
  3.                     print "director", director
  4.             else:
  5.                 print "No hay director"
  6.                 director = "-"
  7.  

Ahora,como sugerencia: no es necesario que recorras todo el resultado de la expresión regular porque la variable director sólo contendrá el último elemento. Así que puedes usar temp_var2[-1] si quieres el último resultado de la expresión regular.

El segundo error que te dará cuando ejecutes el código corregido será:

Código: Python
  1. AttributeError: 'list' object has no attribute 'join'

El problema es que el valor de genero es una lista y el método re.escape() recibe como argumento un string, la solución que puedes implementar si quieres tener en la cadena todos los generos sería poner:

Código: Python
  1. genero = ", ".join(genero)

justo despues de la línea:

Código: Python
  1. genero = pattern.findall(htmlstring)

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Diciembre 23, 2013, 06:09:16 pm »
Gracias amigo. ahora otra ayudita aqui.
tengo el siguiente codigo
Citar
        regex = '<li><span class="film_info lighten fl">\nGénero</span>(.*?)<\/li>'
        pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
        temp = re.search(pattern, htmlstring).group(0)
        print temp
me da el siguiente error
Citar
Traceback (most recent call last):
  File "C:\Python27\BotSensaCine.py", line 232, in <module>
    temp = re.search(pattern, htmlstring).group(0)
AttributeError: 'NoneType' object has no attribute 'group'
Gracias de antemano.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #5 en: Diciembre 23, 2013, 06:16:59 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Gracias amigo. ahora otra ayudita aqui.
tengo el siguiente codigo
Citar
        regex = '<li><span class="film_info lighten fl">\nGénero</span>(.*?)<\/li>'
        pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
        temp = re.search(pattern, htmlstring).group(0)
        print temp
me da el siguiente error
Citar
Traceback (most recent call last):
  File "C:\Python27\BotSensaCine.py", line 232, in <module>
    temp = re.search(pattern, htmlstring).group(0)
AttributeError: 'NoneType' object has no attribute 'group'
Gracias de antemano.

Es el mismo error de antes, la expresión regular no encuentra coincidencias así que regresa un objeto None. Simplemente agrega un condicional para verificar si la expresión regular encontro una coincidencia.

Código: Python
  1.         regex = '<li><span class="film_info lighten fl">\nGénero</span>(.*?)<\/li>'
  2.         pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
  3.         temp = re.search(pattern, htmlstring)
  4.         if temp:
  5.                 print temp.group(0)
  6.  

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #6 en: Diciembre 23, 2013, 07:40:04 pm »
ve tengo el siguiente codigo que me distes:
Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
try:
            regex = '<span itemprop=\"genre\">(.+?)<\/span><\/span>'
            pattern = re.compile(regex, re.I | re.DOTALL | re.MULTILINE)
            temp_var = pattern.findall(htmlstring)
            if temp_var:
                genero = ", ".join(genero)
                for genero in temp_var:
                    print genero
            else:
                genero = "-"
        except:
            genero = "-"
al insertar como me dijistes sale en la base de datos asi:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
c,o,m,e,d,i,a

gracias

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #7 en: Diciembre 23, 2013, 07:49:38 pm »
listo problema resuelto tenia que quitar el for y hacer lo que me habias dicho. gracias

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 7621
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1641
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2227
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3001
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 3029
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made