Cara menggunakan mysql to csv python

@app.route("/uploadcsv", methods=['POST'])
def uploadcsv():
csvfile = request.files['file']
with open(csvfile):
    reader = csv.DictReader(csvfile)
    for row in data:
      # data yang akan dimasukin ke dalam database
      query = test_result(# data sebelumnya dipanggil lagi)
      db.session.add(sql)
      db.session.commit()
      return("berhasil")
    else:
      return redirect(# kembali ke url untuk upload csv)
kalau saran dari aku sih mending pake python csv library mas, biar gak perlu ngeparser csv lagi

Pada artikel ini, kita akan menjelajahi metode untuk menambahkan data yang baru dibuat ke file CSV yang ada. Modul CSV menyediakan dua metode untuk menulis file CSV, yaitu:

  1. Penulis
  2. Penulis Dikt

Kami akan menggunakan metode penulisan CSV ini untuk menambahkan data yang baru kami buat ke file CSV yang ada.

Metode 1: Menggunakan Metode Penulis CSV ()

Dalam metode ini, kita akan menggunakan metode penulis () dari CSV untuk menambahkan data yang baru dibuat ke CSV.

File CSV : File CSV (test.csv) di bawah ini akan kita gunakan untuk menambahkan baris baru.

Month,1958,1959,1960
JAN,340,360,417
FEB,318,342,391
MAR,362,406,419
APR,348,396,461
JAN,340,360,417
FEB,318,342,391

dari penulis impor csv

from csv import writer

# this function which append new row data into an existing csv file
def appendNewRow(csvFileName, unsurtsToAppend):
    # open the csv file in the append cara
    with open(csvFileName, 'a+', newline='') as append_obj:
        # created a writer object from the writer module
        append_writer = writer(append_obj)
        # the created writer object which writes new row to the csv
        append_writer.writerow(unsurtsToAppend)

# list of new unsurts which we want to append
newrow = ["DEC",  337,  405,  432]
# calling a function which accepts two parameters csv file and new row data
appendNewRow('test.csv', newrow)

Keluaran:

Month,1958,1959,1960
JAN,340,360,417
FEB,318,342,391
MAR,362,406,419
APR,348,396,461
JAN,340,360,417
FEB,318,342,391
DEC,337,405,432

Baris 1 : Kami mengimpor modul penulis.

Baris 4 hingga 10 : Kami membuat fungsi bernama “appendNewRow” yang menerima dua parameter (nama file CSV yang ada dan datanya). Kami membuka file CSV (file CSV yang ada) dengan cara append (‘a’), sehingga kami dapat menambahkan data baru kami ke file CSV. Untuk itu, kami membuat objek (append_writer) dari modul writer. Dan di baris berikutnya, kita memanggil metode writerow dari objek append_writer untuk menambahkan data ke CSV.

Baris 13 dan 15 : Kami membuat daftar data baru yang ingin kami tambahkan ke file CSV yang ada. Pada baris 15, kita memanggil fungsi “appendNewRow” dan melewatkan dua parameter (nama file CSV yang ada dan datanya).

Sekarang, kita akan menambahkan data di mana beberapa data hilang.

Pada contoh sebelumnya, kita telah melihat tidak ada nilai kolom yang hilang pada data yang baru dibuat. Tetapi apa yang akan terjadi jika kita memiliki beberapa nilai kolom yang hilang? Jadi, bahkan jika kita memiliki beberapa nilai kolom yang hilang, modul penulis dari CSV tidak memiliki metode untuk memeriksa apakah semua nilai kolom ada dalam data atau tidak.

# list of new unsurts which we want to append
newrow = ["DEC",  337,  432]
# calling a function which accepts two parameters csv file and new row data
appendNewRow('test.csv', newrow)

Keluaran:

Month,1958,1959,1960
JAN,340,360,417
FEB,318,342,391
MAR,362,406,419
APR,348,396,461
JAN,340,360,417
FEB,318,342,391
DEC,337,405,432
DEC,337,432

Kami membuat kumpulan data baru di mana satu nilai kolom tidak ada. Jadi ketika kita menjalankan contoh program di atas, itu memberikan hasil tambahan sederhana seperti yang ditunjukkan pada output di atas. Tetapi pada output itu sendiri, kita dapat melihat bahwa nilai 405 tidak ada. Akibatnya, modul penulis CSV tidak memiliki metode untuk menentukan nilai kolom yang hilang.

Jadi, jika kita ingin menyesuaikan nilai kolom yang tepat dari data yang baru dibuat, bahkan jika ada beberapa nilai yang hilang, kita harus melewatkan beberapa nilai string kosong bersama dengan data, seperti di bawah ini:

newrow = ["DEC",  337, '', 432]

Kasus di atas bukan masalah besar karena hanya satu baris data, tetapi ketika kita memiliki miliaran baris, kita tidak dapat menangani situasi seperti itu dengan metode penambahan string kosong. Karena itu akan menjadi pekerjaan yang sangat membosankan.

Metode 2: Menggunakan Metode DictWriter ()

Dalam metode ini, kita akan membahas metode DictWriter() untuk menambahkan data yang baru dibuat ke csv. Metode DictWriter() juga memiliki fasilitas untuk mengetahui nilai kolom mana yang hilang karena ini adalah metode berbasis kamus dan jika ada nilai kunci yang kosong, string akan tetap kosong secara otomatis.

File CSV : Kami menggunakan file CSV yang sama (test.csv) seperti yang kami gunakan pada co
ntoh sebelumnya.

# this function which append new row data into an existing csv file
def appendNewRow(csvFileName, unsurtsToAppend):
    # open the csv file in the append cara
    with open(csvFileName, 'a+', newline='') as append_obj:
        # created a writer object from the writer module
        append_writer = DictWriter(append_obj,
                                   fieldnames = ['Month', '1958', '1959','1960'])
        # the created writer object which writes new row to the csv
        append_writer.writerow(unsurtsToAppend)

# list of new unsurts which we want to append
newrow = {"Month":"DEC", "1958":"337", "1959":"405", "1960" : "432" }
# calling a function which accepts two parameters csv file and new row data
appendNewRow('test.csv', newrow)

Keluaran:

Month,1958,1959,1960
JAN,340,360,417
FEB,318,342,391
MAR,362,406,419
APR,348,396,461
JAN,340,360,417
FEB,318,342,391
DEC,337,405,432

Baris 1 : Kami mengimpor metode DictWriter.

Baris 4 hingga 12 : Kami membuat fungsi bernama “appendNewRow” yang menerima dua parameter (nama file CSV yang ada dan datanya). Kami membuka file csv (yang ada) dengan cara append (‘a’), sehingga kami dapat menambahkan data dict baru kami ke file CSV. Kemudian kami meneruskan header CSV dalam bentuk daftar ke DictWriter sambil membuat objek itu sendiri. Kita harus memberi tahu nama kolom csv ke objek sebelum menulis ke csv. Jika tidak, itu akan menghasilkan error karena objek tidak akan dapat memahami nama-nama kunci kamus. Dan di baris berikutnya, kita memanggil metode writerow dari objek append_writer untuk menambahkan data kamus ke CSV.

Baris 14 hingga 16 : Kami membuat kamus data baru yang ingin kami tambahkan ke file CSV yang ada. Pada baris 16, kita memanggil fungsi “appendNewRow” dan melewatkan dua parameter (nama file CSV yang ada dan datanya).

Sekarang, kita akan menambahkan data di mana beberapa data hilang.

Seperti yang kita ketahui, masalah utama dengan metode penulis adalah bahwa tidak ada metode untuk secara otomatis mendeteksi bahwa ada nilai kolom yang hilang. Tetapi metode DictWriter dapat menebak ini secara otomatis dengan bantuan kunci yang hilang. Jadi mari kita jelajahi ini dengan sebuah contoh.

# list of new unsurts which we want to append
newrow = {"Month":"DEC", "1958":"337", "1960" : "432" }
# calling a function which accepts two parameters csv file and new row data
appendNewRow('test.csv', newrow)

Sekarang, kita akan meneruskan data dict baru di mana kunci (‘1959’) dengan nilainya hilang. Jadi, mari kita berikan data ini ke program dan lihat hasilnya.

Keluaran:

Month,1958,1959,1960
JAN,340,360,417
FEB,318,342,391
MAR,362,406,419
APR,348,396,461
JAN,340,360,417
FEB,318,342,391
DEC,337,405,432
DEC,337,,432

Output di atas menunjukkan bahwa sebagai ganti nilai yang hilang, metode DictWriter meletakkan string kosong.

Kesimpulan

Kami telah melihat dua metode untuk menulis data yang baru dibuat ke file CSV yang ada. Penulis metode pertama bagus, tetapi hanya jika kita tidak memiliki nilai kolom yang hilang. Karena, seperti yang telah kita lihat, metode penulis CSV tidak mampu menangani situasi nilai yang hilang, dan itu akan memasukkan nilai kolom tertentu ke beberapa nilai kolom lainnya. Jadi, ini adalah kelemahan utama dari metode penulis. Tetapi situasi ini sangat mudah ditangani oleh metode DictWriter karena kuncinya.

Apa itu CSV dalam python?

Format CSV (Comma Separated Values) adalah format impor dan ekspor data yang paling umum digunakan untuk data spreadsheet dan database.

Bagaimana cara membuka file CSV?

Jika file adalah file . csv, Excel secara otomatis membuka file teks dan menampilkan data di buku kerja baru. Catatan: Saat Excel membuka file . csv, file tersebut menggunakan pengaturan format data default saat ini untuk menginterpretasikan cara mengimpor setiap kolom data.

Apa itu parsing Python?

Cara Parsing File CSV di Python Parsing disini artinya mengurai atau mengubah data yang tadinya dalam bentuk CSV menjadi bentuk yang bisa dibaca dalam program. Misalnya mengubahnya dalam bentuk list atau dictionary.