Registrieren Sie gemeinsam Daten im Firestore mithilfe der CSV-Datei in Python

Überblick

Stellen Sie sich Folgendes vor: Kontrollpunkte unterscheiden sich je nach Vertragsstatus, so dass es einfach ist.

Datenstruktur

CSV-Dateiformat

Das Trennzeichen ist ",". Gelegentlich gibt es CSV-Dateien, die nicht den Regeln entsprechen. Seien Sie also bitte vorsichtig.

testimage.jpg

DB-Konfiguration

Diesmal ist es eine einfache Konfiguration. Ich denke an Unique als Primärschlüssel, und es gibt keine Duplizierung.

DB-Konfiguration


unique ---------- item1 
       |           | a : 1
       |           | b : 2
       |            ∟ c : 3
       |
       |--------- item1 
       |           | a : 4
       |           | b : 5
       |            ∟ c : 6
       |
       ∟ --------- item1 
                   | a : 7
                   | b : 8
                    ∟ c : 9

Programm

Ich mache folgendes.

sample.py


import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import csv 

#Daten lesen
def read_data(file_name):
    csv_data = None 
    with open(file_name) as r:
        reader  =csv.reader(r)
        csv_data = [row for row in reader]#In einer Variablen als zweidimensionales Array gespeichert
    print('read end')
    
    return csv_data

#Firebase-Initialisierungsprozess
def firebase_init(api_key):
    api_key = credentials.Certificate(api_key)
    #Es scheint, dass der vorherige Initialisierungsstatus erhalten bleibt. Löschen Sie daher zuerst den vorherigen Initialisierungsstatus
    if(len(firebase_admin._apps)):
        firebase_admin.delete_app(firebase_admin.get_app())
    firebase_admin.initialize_app(api_key)
    print("init end")

#Hauptverarbeitung / Datenregistrierung
def exe(data):
    db = firestore.client()#Firestore-Client-Variable
    header = data[0]#Header abrufen
    doc_base = db.collection(header[0])#Stellen Sie einen einzigartigen Ort ein
    print("proc start")
    for i in range(1, len(data)):#Da die Daten aus der zweiten Zeile stammen, ab 1
        doc_ref = doc_base.document(data[i][0])# a,b,Stellen Sie auf c
        buf = {}#Puffer
        for j in range(1, len(data[i])):
            buf[header[j]] = data[i][j]
        doc_ref.set(buf) #Im Firestore speichern
    print("poc end")

def main():
    file_name = "CSV-Dateiname"
    api_key = r'api_key'

    #Datei lesen
    data = read_data(file_name)

    #Firebase-Initialisierung
    firebase_init(api_key)

    #Hauptverarbeitung
    exe(data)

if __name__=="__main__":
    main()

abschließend

Diesmal handelt es sich um eine Stapelregistrierung in einem sauberen Zustand, aber ich denke, dass es besser ist, unterwegs gemeinsam Daten vom Firestore zu erfassen, den Unterschied zu überprüfen und auf den Firestore zu aktualisieren. Ist die Gebühr nicht reduziert, da die Anzahl der API-Anrufe reduziert ist? Ich habe keine Probeberechnung durchgeführt.

Recommended Posts

Registrieren Sie gemeinsam Daten im Firestore mithilfe der CSV-Datei in Python
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
CSV in Python
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
Erstellen Sie eine GIF-Datei mit Pillow in Python
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Verschieben von CSV-Dateien in Python Teil 2: Leistungsmessung
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Dateioperationen in Python
Dateiverarbeitung in Python
Datenbereinigung mit Python
Dateimanipulation mit Python
Lesen Sie die Python-CSV-Datei
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Verarbeitung von CSV-Daten in voller und halber Breite in Python
[AWS IoT] Registrieren Sie Dinge in AWS IoT mithilfe des AWS IoT Python SDK
Holen Sie sich LEAD-Daten mit der REST-API von Marketo in Python
Erstellen Sie Ihre erste GDSII-Datei in Python mit gdspy
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
Behandeln Sie Umgebungsdaten in Python
Zeigen Sie UTM-30LX-Daten in Python an
Datenanalyse mit Python-Pandas
Übersetzt mit Googletrans in Python
Laden Sie die CSV-Datei mit Python herunter
Verwenden des Python-Modus in der Verarbeitung
[Python] Öffnen Sie die CSV-Datei in dem von Pandas angegebenen Ordner
Aufblasen von Textdaten durch erneute Übersetzung mithilfe der Google-Übersetzung in Python
Geben Sie Excel-Daten mit Python3 + xlrd + mecab separat aus
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Verschieben von CSV-Dateien mit Python Teil 1
[Python] Laden von CSV-Dateien mit Pandas
GUI-Programmierung in Python mit Appjar
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Datenerfassung mit Python Googlemap API
[Python] Mit Python in eine CSV-Datei schreiben
Speichern Sie die Binärdatei in Python
Linebot-Erstellung und Dateifreigabe mit Python
Ausgabe in eine CSV-Datei mit Python
Behandeln Sie Daten im NetCDF-Format mit Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Erstellen Sie eine Binärdatei in Python
Analysieren Sie Daten im CSV-Format mit SQL
Versuchen Sie den Zugriff auf das SPS-Register in Python
Verwendung globaler Variablen in Python-Funktionen
Lesen und Schreiben von Python CSV-Dateien
Hashing von Daten in R und Python
[Python] Speichern einer CSV-Datei als eindimensionale Array-Daten
Mal sehen, wie man Eingaben in Python verwendet
Gesamtleistung in Python (mit Funktools)
Extrahieren Sie die Targz-Datei mit Python
ORC, Parkettdateivorgänge in Python
Handschriftliche Zeichenerkennung mit KNN in Python
Versuchen Sie es mit LeapMotion mit Python
Suche nach Tiefenpriorität mit Stack in Python