Python-Code zum Schreiben von CSV-Daten in den DSX-Objektspeicher

Eine Erinnerung zum Lesen von Dateien zur Objektspeicherung aus Python-Code auf Notebooks in einem der Kerndienste von Watson Data Platform Data Science Experience (DSX) Dies ist eine Fortsetzung von Python-Code zum Lesen von CSV-Daten aus dem DSX-Objektspeicher, und diesmal ist es der Code zum Schreiben.

Im Fall des vorherigen Lesens waren die zu lesenden Daten klar und die Authentifizierungsinformationen wurden aus diesen Daten erhalten. Dieses Mal besteht der Zweck darin, das Ergebnis des Berechnungsprozesses zu zeichnen, sodass ein Container vorhanden ist, der dem Projekt entspricht. Trotzdem kann ich die Anmeldeinformationen nicht aus dem Dateinamen abrufen. Also was soll ich tun?

Wenn ich mich bei DSX anmelde und nach Anmeldeinformationen suche, die vom Datendienst in den Container geschrieben werden können, kann ich sie nirgendwo finden. Sie können jedoch Container-Anmeldeinformationen abrufen, indem Sie sich über Bluemix PaaS anmelden und nach Informationen zum Objektspeicher suchen.

Wechseln Sie aus der Liste der Dienste zu DSX-Object Storage. スクリーンショット 2017-04-20 14.00.23.png

Wenn die DSX-ObjectStorage-Dienstanmeldeinformationen angezeigt werden, werden die Dienstanmeldeinformationen für jeden Container erstellt, dh für jedes Projekt. Kopieren Sie daher die Dienstanmeldeinformationen des entsprechenden Containers und verwenden Sie sie in das DSX-Notizbuch. スクリーンショット 2017-04-20 14.09.15.png

Die Dienstanmeldeinformationen auf der Bluemix-Seite enthalten nicht den Containernamen. Daher habe ich diesen Teil manuell hinzugefügt und kann loslegen.

from io import BytesIO  
import requests
import numpy as np
import json


# Anmeldeinformationen für die Objektspeicherung
credentials_5 = {
 'auth_url':'https://identity.open.softlayer.com',
 'project':'object_storage_bc6cdc85_586e_4581_8a09_8f01f7bdf3ed',
 'project_id':'2a9de4c1d50944a49f1a46dd53394158',
 'region':'dallas',
 'user_id':'********************************',
 'domain_id':'fb119f3e1bc0469dad2b253b317ec7ea',
 'domain_name':'952993',
 'username':'***********************************************',
 'password':"********************",
'container': 'DefaultProjecttakarajpibmcom' <--- Von Hand hinzufügen
}


def Write_CSV_to_ObjectStorage(credentials, npdata,label, fileName):  
   """This functions returns a StringIO object containing
   the file content from Bluemix Object Storage V3."""

   csvData = ""
# Beschriften Sie Daten, die in die erste Zeile der CSV geschrieben wurden
   c = 0
   for col in label:
       if c > 0:
           csvData = csvData + ','
       csvData = csvData + col
       c = c + 1
   csvData = csvData + "\n"
   
# Konvertieren Sie Numpy-Array-Daten in Textdaten im CSV-Format
   rows, cols = np.shape(npdata)
   for row in a:
       c = 0
       for col in row:
           if c > 0:
               csvData = csvData + ','
           csvData = csvData + str(col)
           c = c + 1
       csvData = csvData + "\n"
   
#Objektspeicherauthentifizierung
   url1 = ''.join(['https://identity.open.softlayer.com', '/v3/auth/tokens'])
   data = {'auth': {'identity': {'methods': ['password'],
           'password': {'user': {'name': credentials['username'],'domain': {'id': credentials['domain_id']},
           'password': credentials['password']}}}}}
   headers1 = {'Content-Type': 'application/json'}
   resp1 = requests.post(url=url1, data=json.dumps(data), headers=headers1)
# Beenden, wenn ein Authentifizierungsfehler auftritt
   if resp1.status_code != 201:
       return False, resp1.status_code
   resp1_body = resp1.json()

# In Objektspeicher schreiben
   for e1 in resp1_body['token']['catalog']:
       if(e1['type']=='object-store'):
           for e2 in e1['endpoints']:
               if(e2['interface']=='public'and e2['region']=='dallas'):
                   url2 = ''.join([e2['url'],'/', credentials['container'], '/', fileName])
   s_subject_token = resp1.headers['x-subject-token']
   headers2 = {'X-Auth-Token': s_subject_token, 'accept': 'application/json'}
   resp2 = requests.put(url=url2, headers=headers2, data = csvData )
   result = True
   if resp2.status_code != 201:
       print "ERROR ", resp2.status_code
       result = False
   return result, resp2.status_code
   

# Maine

# Datengenerierung
x = np.linspace(0,1,60)
y = np.linspace(10,11,60)

# Zweidimensionales Array von Änderungen (x, y) an einem einzelnen Array
a = np.stack((x, y), axis=-1)
print a
# Datenetikett
label = ["Time","Data"]

# Im Objektspeicher speichern
rslt = Write_CSV_to_ObjectStorage(credentials_5, a, label,"testDataSet.csv")
print rslt
ew

Erklärung zur Verwendung

Das erste Argument sind die Anmeldeinformationen. Das zweite Argument ist ein Array von num.py im Datenarray und wird in die erste Zeile der CSV-Datei mit der Bezeichnung der Datenspalte eingefügt. Als nächstes folgt der Dateiname (der Name des im Objektspeichercontainer gespeicherten Objekts).

rslt = Write_CSV_to_ObjectStorage(credentials_5, a, label,"testDataSet.csv")

Der Rückgabewert ist 201 Erstellt, wenn erfolgreich. Andernfalls wird es fehlschlagen.

Recommended Posts

Python-Code zum Schreiben von CSV-Daten in den DSX-Objektspeicher
Lesen von CSV-Daten aus dem Python-Code des DSX-Objektspeichers
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
Verwendung von "deque" für Python-Daten
Schreiben von Protokollen in eine CSV-Datei (Python, C-Sprache)
Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
Zeichencode zum Lesen und Schreiben von CSV-Dateien mit Python ~ Windows-Umgebung ver ~
Schreiben Sie Python2-Code in Python3 um (2to3)
Vor dem Schreiben von Python-Code
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
[Python] Ändern Sie die Cache-Steuerung von Objekten, die in den Cloud-Speicher hochgeladen wurden
Persönliches Python-Code-Memo
Festlegen der Cache-Steuerung für den BLOB-Speicher in Azure Storage in Python
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Stilvolle Technik zum Einfügen von CSV-Daten in Excel mit Python
Schreiben Sie mit Python in csv
Python für die Datenanalyse Kapitel 2
[Python] Beispielcode für die Python-Grammatik
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
[Python] Einführung in die Diagrammerstellung mit Corona-Virendaten [Für Anfänger]
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Einführung in Python For, While
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
Konvertieren Sie Python 3.x-Code in Python 2.x.
Python für die Datenanalyse Kapitel 3
Aufbau einer Python-Umgebung für diejenigen, die Datenwissenschaftler 2016 werden möchten
Festlegen der CORS-Einstellungen für den Azure-Speicherdienst in Python
[Python] Speichern einer CSV-Datei als eindimensionale Array-Daten
Prolog-Objektorientierung für Python-Programmierer
[Python] Wie man MP3-Daten fFT
[Python] Mit Python in eine CSV-Datei schreiben
Minimale Grammatiknotizen zum Schreiben von Python
Ausgabe in eine CSV-Datei mit Python
Python-Kurs für datenwissenschaftlich-nützliche Techniken
VS-Codefragmente für Datenanalysten
Memo für mich Python CSV Graph
Lesen und Schreiben von Python CSV-Dateien
Vorverarbeitungsvorlage für die Datenanalyse (Python)
Hinweise zum Schreiben von Python-ähnlichem Code
Datenformatierung für Python / Farbdiagramme
Lesen und Schreiben von CSV mit Python
Einfaches Erlernen von Python beim Schreiben
Erste Schritte mit Python für Nicht-Ingenieure
Datei-Upload in Azure Storage (Python)
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
Datenanalyse: Einfache Anwendung deskriptiver Statistiken und Schätzungsstatistiken auf CSV-Daten in Python
Kopieren Sie Daten von Amazon S3 mit Python (boto) in Google Cloud Storage.
Fehler aufgrund von UnicodeDecodeError beim Lesen der CSV-Datei mit Python [Für Anfänger]
Beispiel für den Betrieb eines Cloud Pak for Data-Objekts in Python (WML-Client, project_lib)
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 6 Verbessern Sie den Python-Code
[Python] So konvertieren Sie eine Datenbankdatei in CSV
Dateneingabe / -ausgabe in Python (CSV, JSON)
Python-Visualisierungstool für die Datenanalyse