Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    10

    [python]mysql

    Salve a tutti!!
    Vi scrivo il codice che devo utlizzare...

    #---------Apertura della connessione----------------------------------
    import MySQLdb
    conn = MySQLdb.connect(host="localhost",user="root",passw d="informatica",db="esercizio")
    cursore = conn.cursor()
    cont=1
    cursore.execute('USE esercizio;')
    #-----------Creo una nuova tabella dove metto i risultati--------------
    cursore.execute('DROP TABLE IF EXISTS `tmp`;')
    cursore.execute('CREATE TABLE `tmp` (stores_id INT, ricavo FLOAT)')

    risultato=""
    while cont<=24:
    cursore.execute('SELECT sum(store_sales*unit_sales) FROM sales_fact_1998 s where store_id=%d and promotion_id="0" ;'%(cont))
    risultato = cursore.fetchall()
    cursore.execute("INSERT INTO tmp (stores_id, ricavo) VALUES ('"+cont+"','"+risultato+"')")
    cursore.execute('commit')
    print risultato #codice temporaneo poi va cancellato!!!!
    cont=cont+1

    Non è indentato!
    Esegue tutte le query sql tranne quella dell'insert into xò la tabella viene creata correttamente. Infatti mi da errore appunto su quella riga di codice...io ho pensato che x inserire in una tabella devo avere x forza delle stringhe e nn degli int o dei float ma nn so come fare a convertire le due variabili perchè l'errore è : cannot concatenated 'str' and 'int' object oppure cannot concatenated 'str' and 'tupla' object.

    Poi altro quesito...come faccio a leggere dal database e poi scrivere in un file di testo...La farte delle scrivere ci sono ma in quella del leggere nn so dove mettere le mani...
    Grazie a tutti!

  2. #2
    - Il codice non è indentato e di conseguenza non si può capire (usa i tag 'code').
    - Parli di un errore ma non fornisci il messaggio di Traceback.
    - (peggio di tutte) Parli di una cosa che conosci solo tu (non hai spiegato il problema).

    Da quel poco che ho capito in questo casino:

    io ho pensato che x inserire in una tabella devo avere x forza delle stringhe e nn degli int o dei float ma nn so come fare a convertire le due variabili
    Sforzandomi fino a perdere i capelli ho capito che tu hai una variabile 'stringa' del tipo:

    codice:
    >>> s = '1'
    ...che sei obbligato a tenere tale (tipo stringa, appunto) ma che vorresti utilizzare per poter effettuare operazioni matematiche su di essa, del tipo:

    codice:
    >>> s + 5
    6
    In tal caso ti basta convertire temporaneamente 's' da stringa a intero tramite il builtin int:

    codice:
    >>> int(s) + 5
    6
    l'errore è : cannot concatenated 'str' and 'int' object oppure cannot concatenated 'str' and 'tupla' object.
    Manca il contesto, il codice e anche il messaggio di Traceback ma dai due errori che hai citato deduco che stai mischiando interi con stringhe e tuple:

    codice:
    >>> 5 + '5'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for +: 'int' and 'str'
    >>> 5 + (5,)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for +: 'int' and 'tuple
    Questo ovviamente non è possibile in quanto Python (per fortuna) adotta lo strong-typing. Rifletti su questo:

    codice:
    >>> type(5)
    <type 'int'>
    >>> type('5')
    <type 'str'>
    >>> type((5,))
    <type 'tuple'>
    ...e considera che tutti questi tipi possono essere convertiti in interi tramite il builtin che ho detto sopra.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.