Records adalah pustaka yang sangat sederhana namun kuat untuk membuat kueri SQL mentah ke sebagian besar database relasional.
Tulis saja SQL. Tidak ada bel, tidak ada peluit. Tugas umum ini bisa jadi sangat sulit dilakukan dengan alat standar yang tersedia. Pustaka ini berusaha membuat alur kerja ini sesederhana mungkin, sekaligus menyediakan antarmuka yang elegan untuk bekerja dengan hasil kueri Anda.
Dukungan basis data mencakup RedShift, Postgres, MySQL, SQLite, Oracle, dan MS-SQL (driver tidak termasuk).
Kami tahu cara menulis SQL, jadi mari kirimkan beberapa ke database kami:
import records
db = records . Database ( 'postgres://...' )
rows = db . query ( 'select * from active_users' ) # or db.query_file('sqls/active-users.sql')
Ambil satu baris dalam satu waktu:
> >> rows [ 0 ]
< Record { "username" : "model-t" , "active" : true , "name" : "Henry Ford" , "user_email" : "[email protected]" , "timezone" : "2016-02-06 22:28:23.894202" } >
Atau ulangi:
for r in rows :
print ( r . name , r . user_email )
Nilai dapat diakses dengan berbagai cara: row.user_email
, row['user_email']
, atau row[3]
.
Bidang dengan karakter non-alfanumerik (seperti spasi) juga didukung sepenuhnya.
Atau simpan salinan koleksi rekaman Anda untuk referensi nanti:
> >> rows . all ()
[ < Record { "username" : ...} > , < Record { "username" : ...} > , < Record { "username" : ...} > , ...]
Jika Anda hanya mengharapkan satu hasil:
> >> rows . first ()
< Record { "username" : ...} >
Opsi lainnya termasuk rows.as_dict()
dan rows.as_dict(ordered=True)
.
$DATABASE_URL
.Database.get_table_names
Kenyamanan.get_table_names.Database.query('life=:everything', everything=42)
.t = Database.transaction(); t.commit()
.Database.bulk_query()
& Database.bulk_query_file()
.Records dengan bangga didukung oleh SQLAlchemy dan Tablib.
Catatan juga dilengkapi integrasi Tablib penuh, dan memungkinkan Anda mengekspor hasil ke CSV, XLS, JSON, Tabel HTML, YAML, atau Pandas DataFrames dengan satu baris kode. Sangat baik untuk berbagi data dengan teman, atau membuat laporan.
>>> print (rows.dataset)
username|active|name |user_email |timezone
--------|------|----------|-----------------|--------------------------
model-t |True |Henry Ford|[email protected]|2016-02-06 22:28:23.894202
...
Nilai yang Dipisahkan Koma (CSV)
>>> print (rows.export( ' csv ' ))
username,active,name,user_email,timezone
model-t,True,Henry Ford,[email protected],2016-02-06 22:28:23.894202
...
YAML Bukan Bahasa Markup (YAML)
> >> print ( rows . export ( 'yaml' ))
- { active : true , name : Henry Ford , timezone : '2016-02-06 22:28:23.894202' , user_email : model - t @ gmail . com , username : model - t }
...
Notasi Objek JavaScript (JSON)
> >> print ( rows . export ( 'json' ))
[{ "username" : "model-t" , "active" : true , "name" : "Henry Ford" , "user_email" : "[email protected]" , "timezone" : "2016-02-06 22:28:23.894202" }, ...]
Microsoft Excel (xls, xlsx)
with open ( 'report.xls' , 'wb' ) as f :
f . write ( rows . export ( 'xls' ))
Bingkai Data Panda
> >> rows . export ( 'df' )
username active name user_email timezone
0 model - t True Henry Ford model - t @ gmail . com 2016 - 02 - 06 22 : 28 : 23.894202
Anda mengerti maksudnya. Semua fitur Tablib lainnya juga tersedia, sehingga Anda dapat mengurutkan hasil, menambah/menghapus kolom/baris, menghapus duplikat, mengubah posisi tabel, menambahkan pemisah, mengiris data berdasarkan kolom, dan banyak lagi.
Lihat Dokumentasi Tablib untuk lebih jelasnya.
Tentu saja, metode instalasi yang disarankan adalah pipenv:
$ pipenv install records[pandas]
?
Terima kasih telah memeriksa perpustakaan ini! Saya harap ini bermanfaat bagi Anda.
Tentu saja, selalu ada ruang untuk perbaikan. Jangan ragu untuk membuka terbitan sehingga kami dapat membuat Rekaman menjadi lebih baik, lebih kuat, dan lebih cepat.