• 10 źródeł
  • Najlepszy* Newsletter
  • Kontakt
✕

[#w3linijkach] Jak pobrać dane z MySQL i zapisać do CSV w Pythonie?

Python, Shorty | 2021-05-06

[#w3linijkach] Jak pobrać dane z MySQL i zapisać do CSV w Pythonie?

W Pythonie każdą rzecz można napisać w 3 linijkach!

Konfucjusz (raczej tego nie powiedział)

Rozpoczynamy nową serię krótkich poradników, które możesz wziąć i szybko wykorzystać w swoim projekcie.

A na co to, a komu to potrzebne?

Czasem chcemy sprawdzić jakiś pomysł. Albo zrobić jakieś PoC (Proof of Concept). Albo napisać “jednorazowy” skrypt, który coś za nas zrobi.
I wtedy wchodzę ja, cały na biało. Daję Ci gotową “recepturę”, którą możesz gdzieś wykorzystać.

I to w trzech* linijkach Pythonowego kodu!
* oczywiście nie liczymy importów

A co dzisiaj?

Jak pobrać dane z MySQL i zapisać do CSV w Pythonie?

Czasem chcemy pobrać jakieś dane i szybko zapisać je do pliku. W międzyczasie może “zachce” nam się je zmodyfikować.

Możemy do tego celu wykorzystać znany i lubiany w środowisku Data Science i Machine Learning pandas!

Show me the kodzik!

A o to i kodzik, który pozwala pobrać dane z mysql przy pomocy pandas i zapisać w CSV albo JSON, albo nawet Excel – po przecież mamy całą machinerię pandasa.

connection = sqlalchemy.create_engine("mysql://{}:{}@{}/{}?charset=utf8mb4".format(user, password, server, database)).connect()
pd.read_sql_query("select * from table", connection).to_csv("output.csv")
print("jeszcze linijka została elo")

Uzupełnij user, password, server i database wedle uznania, zmodyfikuj zapytanie SQL, które wykorzystujesz i już.

Nieco ładniejsza wersja tego skryptu może wyglądać tak.

#!/usr/bin/env python

import sqlalchemy
import pandas as pd


def extract_table_to_csv(mysql_conn, table_name, output_path):
    query = f"select * from {table_name}"

    result_df = pd.read_sql_query(query, mysql_conn)
    result_df.to_csv(output_path)
    

def get_db_connection(user, password, server, database):
    # connect to the database
    engine = sqlalchemy.create_engine(
        f"mysql://{user}:{password}@{server}/{database}?charset=utf8mb4"
    )
    connection = engine.connect()
    return connection


if __name__ == "__main__":
    # dopraw do smaku*
    user = ""
    pass = ""
    server = ""
    database = ""
    table_name = ""
    output_path = ""

    # ognia! (zapięte w context, żeby się połączenie ładnie zamknęło)
    with get_db_connection(user, password, server, database) as db_connection:
        extract_table_to_csv(db_connection, table_name, output_path)

Bierzcie i kopiujcie z tego wszyscy. Wszelkie uwagi mile widziane 🙂

Najlepszy* Newsletter o Machine Learning w Polsce

Co tydzień (albo dwa) wyciągam smaczki z różnych miejsc w Internecie na temat Machine Learning, Data Science, AI i Python i przesyłam na Twoją skrzynkę mailową

Przesyłam też krótkie wyjaśnienia niektórych machine learningowych pojęć.

Autor: Konrad Łyda

AI Engineer działający głównie w Lingaro. Zajmuje się głównie maszynerią potrzebną do wytworzenia produktów opartych o uczenia maszynowe - od danych przez modele do wdrożenia. W wolnych chwilach zgłębia szeroki ocean zastosowań Machine/Deep Learningu w różnych dziedzinach życia oraz współorganizuje spotkania społeczności Data Science Lublin

Poprzedni Wpis

Kodowanie znaków przy połączeniu do bazy danych zdradliwe bywa

Następny Wpis

Od danych do produktu - automatyzacja w obszarze Machine Learning dzięki MLOps

Ostatnie Wpisy

Od danych do produktu – automatyzacja w obszarze Machine Learning dzięki MLOps

Od danych do produktu – automatyzacja w obszarze Machine Learning dzięki MLOps

[#w3linijkach] Jak pobrać dane z MySQL i zapisać do CSV w Pythonie?

[#w3linijkach] Jak pobrać dane z MySQL i zapisać do CSV w Pythonie?

Kodowanie znaków przy połączeniu do bazy danych zdradliwe bywa

Kodowanie znaków przy połączeniu do bazy danych zdradliwe bywa

10 źródeł wiedzy o uczeniu maszynowym - pobierz!

Newsletter o ML za free?

Gdzie wejść?


Ostatnie wpisy

  • Od danych do produktu – automatyzacja w obszarze Machine Learning dzięki MLOps
  • [#w3linijkach] Jak pobrać dane z MySQL i zapisać do CSV w Pythonie?
  • Kodowanie znaków przy połączeniu do bazy danych zdradliwe bywa
  • Jak mergować Jupyter notebooki w GIT i nie osiwieć? Proste narzędzie!
  • [WDI2021] Szukamy Szopów, czyli Computer Vision w 30 minut
Arba WordPress Theme by XstreamThemes.
  • UczymyMaszyny.pl
  • Polityka prywatności
  • Kontakt