Portál AbcLinuxu, 20. říjen 2017 00:18

Dotaz: vystup z MySQL do souboru v Pythonu

4.10.2016 14:00 Hafajs | skóre: 9
vystup z MySQL do souboru v Pythonu
Přečteno: 620×
Odpovědět | Admin
Zdravim všechny, s pythonem i SQL uplne zacinam a momentalne se snazim ulozit data z tabulky do textaku. V tabulce jsou dejme tomu jmena lidi a jejich prichody do práce. Pokousim se zaridit, aby se koncem mesice prohledala databaze a veskere záznamy za dany mesic se ulozily do souboru. Bohuzel se nedari. Kdyby byla mozna nejaka hodne konkretni rada, nebo link na něco hodne podrobného, abych to i ja pochopil, bylo by to super.

Diky

P.S.: myslel jsem, ze tohle by mohlo fungovat, ale nekde všude je chyba

curs.execute("SELECT * FROM `tabulka` INTO OUTFILE "vystup.txt" WHERE `datum` BETWEEN '2016-10-3' AND '2016-10-3'")

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.10.2016 14:12 NN
Rozbalit Rozbalit vše Re: vystup z MySQL do souboru v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejaky duvod zpracovavat vystup selectu v SQL dotazu? Vraci ten select vubec pozadovana data? Bte. manual je podrobny dost. Hodilo by se take zaslat skript, nebo alespon chybovy vystup..
4.10.2016 14:46 Kit | skóre: 38 | Brno
Rozbalit Rozbalit vše Re: vystup z MySQL do souboru v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Otázkou je, do kterého adresáře se pokoušíš uložit výsledek. Určitě ne do svého.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
4.10.2016 15:43 dustin | skóre: 61 | blog: dustin
Rozbalit Rozbalit vše Re: vystup z MySQL do souboru v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen upozornění - ten soubor se ukládá na serveru, kde běží DB, ne na stroji klienta (pokud se liší).
Řešení 1× (Hafajs (tazatel))
24.10.2016 15:39 Hafajs | skóre: 9
Rozbalit Rozbalit vše Re: vystup z MySQL do souboru v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Odpovim si sam. Opustil jsem myslenku delat to naraz. Pry to jde, ale mne se to nepodarilo.

#!/usr/bin/env python # -*- coding: utf8 -*- import pymysql as mysql import time

#konektnuti databaze conn = mysql.connect(host='localhost',user='root',passwd='heslo',db='datab') cur = conn.cursor()

#dotaz do databaze #query = ("SELECT * FROM `tabulka` WHERE extract(YEAR_MONTH FROM datum)= '201610';")

cur.execute(query) # slozeni odpovedi a uloz vypis do souboru soubor= open ('dump.txt', 'w') for (cislo, datum, jmeno, cas, akce) in cur: print("{}, {}, {}, {}, {}".format(cislo, datum, jmeno, cas, akce)) soubor.write(("{}, {}, {}, {}, {}".format(cislo, datum, jmeno, cas, akce))+'\n')

soubor.close() cur.close() conn.close()

Tahle klasika funguje.
24.10.2016 15:52 Kit | skóre: 38 | Brno
Rozbalit Rozbalit vše Re: vystup z MySQL do souboru v Pythonu
Místo značky "code" je nutné použít značku "pre", aby ten výpis vypadal takhle:
#!/usr/bin/env python
# -*- coding: utf8 -*-

import pymysql as mysql
import time

#konektnuti databaze
conn = mysql.connect(host='localhost',user='root',passwd='heslo',db='datab')
cur = conn.cursor()

#dotaz do databaze
query = ("SELECT * FROM `tabulka` WHERE extract(YEAR_MONTH FROM datum)= '201610';")

cur.execute(query)
# slozeni odpovedi a uloz vypis do souboru
soubor= open ('dump.txt', 'w')
for (cislo, datum, jmeno, cas, akce) in cur:
    print("{}, {}, {}, {}, {}".format(cislo, datum, jmeno, cas, akce))
    soubor.write(("{}, {}, {}, {}, {}".format(cislo, datum, jmeno, cas, akce))+'\n')

soubor.close()
cur.close()
conn.close()
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.