Komprimieren Sie Python-Daten und schreiben Sie in SQLite

compress.py


#!/usr/bin/python
# -*- encoding: utf-8 -*-
import sys

import zlib
from base64 import binascii

#-----------------------------------------------------------
# COMPRESS
#-----------------------------------------------------------
def z_compress(data):

    #return buffer(zlib.compress(data))
    return zlib.compress(data)

#-----------------------------------------------------------
# DECOMPRESS
#-----------------------------------------------------------
def z_decompress(data):

    return zlib.decompress(data)

#-----------------------------------------------------------
# B2A
#   Binary >> Base64 Ascii
#-----------------------------------------------------------
def b2a(data):

    return binascii.b2a_base64(data)

#-----------------------------------------------------------
# A2B
#   Base64 Ascii >> Binary
#-----------------------------------------------------------
def a2b(data):

    return binascii.a2b_base64(data)

#-----------------------------------------------------------
# TEST
#-----------------------------------------------------------
def test():

    data = '1234567890123456789012345678901234567890123456789012345678901234567890'

    print 'ROW DATA:   %3d bytes' % sys.getsizeof(data)

    data = z_compress(data)
    print 'COMPRESS:   %3d bytes' % sys.getsizeof(data)

    data = b2a(data)
    print 'B2A:        %3d bytes' % sys.getsizeof(data)

    data_lists = sqlite_test(data)

    for data in data_lists:
        print 'ROW_DATA:   %3d bytes' % sys.getsizeof(data)

        data = a2b(data)
        print 'A2B:        %3d bytes' % sys.getsizeof(data)

        data = z_decompress(data)
        print 'DECOMPRESS: %3d bytes' % sys.getsizeof(data)

def sqlite_test(data):

    import sqlite3

    #---Stellen Sie eine Verbindung zu SQLite her
    con = sqlite3.connect(":memory:")
    cur = con.cursor()

    #---Überprüfen Sie, ob eine Tabelle vorhanden ist
    sql = 'SELECT COUNT(*) FROM sqlite_master WHERE type="table" AND name=?'
    cur.execute(sql, ('test',))

    #---Erstellen, wenn keine Tabelle vorhanden ist
    if not cur.fetchone()[0]:
        sql = 'CREATE TABLE test(data TEXT)'
        con.execute(sql)

    #---Daten stürzen ab
    sql  = 'INSERT INTO test (data) VALUES (?)'
    con.execute(sql, (data,))
    con.commit()

    #---Datenerfassung
    sql = 'SELECT * from test'
    cur.execute(sql)
    row_lists = []
    for row in cur:
        row_lists.append(row[0])

    #---Gibt Daten zurück
    return row_lists

if __name__ == '__main__' : test()

Ergebnis

ROW DATA:   110 bytes
COMPRESS:    61 bytes
B2A:         69 bytes
ROW_DATA:   168 bytes
A2B:         61 bytes
DECOMPRESS: 110 bytes

Recommended Posts

Komprimieren Sie Python-Daten und schreiben Sie in SQLite
Speichern Sie SQLite3-Daten und migrieren Sie zu MySQL
[Python] Komprimieren und dekomprimieren
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Abrufen von Daten von MacNote3 und Migrieren zu Write
Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
Es ist nicht einfach, Python zu schreiben, es ist einfach, numpy und scipy zu schreiben
Schreiben Sie Tests in Python, um die Abdeckung zu profilieren und zu überprüfen
Schreiben Sie Daten mit dem Python-Anforderungsmodul in KINTONE
Stellen Sie von Python aus eine Verbindung zu SQLite her
Schreiben Sie mit Python in csv
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
[Python] Verwenden Sie diese Option, um WAV-Dateien zu lesen und zu schreiben. [WAVIO]
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
[Python] Wie man MP3-Daten fFT
[Einführung in Python3 Tag 1] Programmierung und Python
[Python] Mit Python in eine CSV-Datei schreiben
Verwendung von SQLite in Python
Python-Protokollierung und Dump an JSON
Selen und Python zum Öffnen von Google
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part1-
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part2-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part4-
Verschieben Sie Daten mit Python Change / Delete (Writer und Reader) nach LDAP.
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part3-
[Einführung in Data Scientists] Grundlagen von Python ♬ Bedingte Verzweigung und Schleifen
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und anonyme Funktionen usw.
Datenpipeline-Aufbau mit Python und Luigi
So verpacken und verteilen Sie Python-Skripte
Von Python bis zur Verwendung von MeCab (und CaboCha)
[Einführung in Python3, Tag 17] Kapitel 8 Datenziele (8.1-8.2.5)
Binden Sie Methoden an Python-Klassen und -Instanzen
[Einführung in Python3, Tag 17] Kapitel 8 Datenziele (8.3-8.3.6.1)
So schreiben Sie Python-Dokumentkommentare (Docstrings)
Binden Sie an die Klasse, um YAML zu lesen und zu schreiben
Konvertieren Sie Excel-Daten mit Python in JSON
Fraktal zum Erstellen und Spielen mit Python
Schreiben Sie die O_SYNC-Datei in C und Python
[Einführung in Python3 Tag 19] Kapitel 8 Datenziele (8.4-8.5)
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
Versuch, SQLite3 mit Python zu handhaben [Hinweis]
Lesen Sie Python csv und exportieren Sie es nach txt
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
Python: Verwendung von Einheimischen () und Globalen ()
Verwendung von "deque" für Python-Daten
[Python] Berechnen von MAE und RMSE
Verwendung von Python zip und Aufzählung
Verwendung ist und == in Python
Wie schreibe ich Ruby to_s in Python
[Einführung in Data Scientist] Grundlagen von Python ♬
Kommunikation verschlüsselter Daten zwischen Python und C #
Wie schreibe ich pydoc und mehrzeilige Kommentare
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
Versuchen Sie, Python-Code zu schreiben, um Go-Code zu generieren. - Versuchen Sie, JSON-to-Go usw. zu portieren