Code Python pour l'écriture de données CSV dans le stockage d'objets DSX

Un rappel sur la façon de lire des fichiers sur le stockage d'objets à partir de code Python sur des ordinateurs portables dans l'un des services principaux de Watson Data Platform Data Science Experience (DSX) Il s'agit d'une suite du code Python pour la lecture de données CSV à partir du stockage d'objets DSX, et cette fois, c'est le code d'écriture.

Dans le cas de la lecture précédente, les données à lire étaient claires et les informations d'authentification ont été obtenues à partir de ces données, mais cette fois le but est de tirer le résultat du processus de calcul, il y a donc un conteneur correspondant au projet. Même ainsi, je ne peux pas obtenir les informations d'identification du nom de fichier. Donc qu'est ce que je devrais faire?

Lorsque je me connecte à DSX et que je recherche des informations d'identification pour écrire dans le conteneur à partir du service de données, je ne les trouve nulle part. Cependant, vous pouvez obtenir les informations d'identification du conteneur en vous connectant à partir de Bluemix PaaS et en recherchant des informations de stockage d'objets.

Dans la liste des services, accédez à DSX-Object Storage. スクリーンショット 2017-04-20 14.00.23.png

Lorsque les informations d'identification du service DSX-ObjectStorage sont affichées, les informations d'identification du service sont créées pour chaque conteneur, c'est-à-dire pour chaque projet, copiez et utilisez les informations d'identification de service du conteneur correspondant sur le bloc-notes DSX. スクリーンショット 2017-04-20 14.09.15.png

Les informations d'identification du service du côté Bluemix n'incluent pas le nom du conteneur, alors ajoutez simplement cette partie manuellement et vous êtes prêt à partir.

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


# Informations d'identification de stockage d'objets
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' <--- Ajouter à la main
}


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 = ""
# Données d'étiquette écrites sur la première ligne de CSV
   c = 0
   for col in label:
       if c > 0:
           csvData = csvData + ','
       csvData = csvData + col
       c = c + 1
   csvData = csvData + "\n"
   
# Convertir les données du tableau Numpy en données texte au format CSV
   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"
   
#Object Storage Authentification
   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)
#Quitter quand une erreur d'authentification se produit
   if resp1.status_code != 201:
       return False, resp1.status_code
   resp1_body = resp1.json()

# Ecrire dans le stockage d'objets
   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
   

# Principale

# Génération de données
x = np.linspace(0,1,60)
y = np.linspace(10,11,60)

# Tableau bidimensionnel de changements (x, y) en un seul tableau
a = np.stack((x, y), axis=-1)
print a
# Étiquette de données
label = ["Time","Data"]

# Enregistrer dans le stockage d'objets
rslt = Write_CSV_to_ObjectStorage(credentials_5, a, label,"testDataSet.csv")
print rslt
ew

Explication de l'utilisation

Le premier argument concerne les informations d'identification. Le deuxième argument est un tableau de num.py dans le tableau de données et est inséré dans la première ligne du fichier CSV avec le libellé de la colonne de données. Vient ensuite le nom du fichier (le nom de l'objet stocké dans le conteneur de stockage d'objets).

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

La valeur de retour sera 201 Created en cas de succès. Sinon, cela échouera.

Recommended Posts

Code Python pour l'écriture de données CSV dans le stockage d'objets DSX
Lecture de données CSV à partir du code Python de stockage d'objets DSX
Python> Numéros de sortie de 1 à 100, 501 à 600> Pour csv
Comment utiliser "deque" pour les données Python
Écriture de journaux dans un fichier CSV (Python, langage C)
Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python
Code de caractères pour la lecture et l'écriture de fichiers csv avec python
Réécrire le code Python2 en Python3 (2to3)
Avant d'écrire du code Python
[Pour les débutants] Comment étudier le test d'analyse de données Python3
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
Mémo de code personnel Python
Comment spécifier Cache-Control pour le stockage BLOB dans le stockage Azure en Python
[Python / Ruby] Comprendre le code Comment obtenir des données en ligne et les écrire au format CSV
Technique élégante pour coller des données CSV dans Excel avec Python
Écrire en csv avec Python
Python pour l'analyse des données Chapitre 2
[Python] Exemple de code pour la grammaire Python
[Introduction à Python] Combinaison des données Nikkei Average et NY Dow CSV
[Python] Introduction à la création de graphiques à l'aide de données de virus corona [Pour les débutants]
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Introduction à Python pour, pendant
Un script python qui convertit les données Oracle Database en csv
Convertir le code python 3.x en python 2.x
Python pour l'analyse des données Chapitre 3
Créer un environnement Python pour ceux qui veulent devenir des data scientists 2016
Comment définir les paramètres CORS pour le service de stockage Azure dans Python
[Python] Comment stocker un fichier csv en tant que données de tableau à une dimension
Orientation des objets Prolog pour les programmeurs Python
[Python] Comment FFT des données mp3
[Python] Ecrire dans un fichier csv avec Python
Notes de grammaire minimales pour écrire Python
Sortie vers un fichier csv avec Python
Cours Python pour la science des données - techniques utiles
Extraits de code VS pour les analystes de données
Mémo pour moi graphique csv python
Lecture et écriture de fichiers CSV Python
Modèle de prétraitement pour l'analyse des données (Python)
Notes pour écrire du code de type Python
Formatage des données pour les graphiques Python / couleur
Lire et écrire du CSV avec Python
Python facile à apprendre en écrivant
Premiers pas avec Python pour les non-ingénieurs
Téléchargement de fichiers vers Azure Storage (Python)
[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
Analyse des données: application facile des statistiques descriptives et des statistiques d'estimation aux données CSV en Python
Copier des données d'Amazon S3 vers Google Cloud Storage avec Python (boto)
Erreur due à UnicodeDecodeError lors de la lecture d'un fichier CSV avec Python [Pour les débutants]
Exemple d'opération d'objet Cloud Pak for Data en Python (client WML, project_lib)
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 6 Améliorer le code Python
[Python] Comment convertir un fichier db en csv
Entrée / sortie de données en Python (CSV, JSON)
Outil de visualisation Python pour le travail d'analyse de données